From: Anantha Kesari H Y <hyanantha@php.net> Date: Sat, 16 Jul 2005 11:18:35 +0000 (+0000) Subject: NetWare specific dirname fixes. X-Git-Tag: php-5.0.5RC1~59 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=75841af9f61fd783db50faba84d106349c10f258;p=php NetWare specific dirname fixes. --Kamesh --- diff --git a/ext/standard/string.c b/ext/standard/string.c index 713e521b94..2cdfd018c9 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -1175,6 +1175,22 @@ PHPAPI size_t php_dirname(char *path, size_t len) return len; } } +#elif defined(NETWARE) + /* + * Find the first occurence of : from the left + * move the path pointer to the position just after : + * increment the len_adjust to the length of path till colon character(inclusive) + * If there is no character beyond : simple return len + */ + char *colonpos = NULL; + colonpos = strchr(path, ':'); + if(colonpos != NULL) { + len_adjust = ((colonpos - path) + 1); + path += len_adjust; + if(len_adjust == len) { + return len; + } + } #endif if (len == 0) { @@ -1199,9 +1215,21 @@ PHPAPI size_t php_dirname(char *path, size_t len) } if (end < path) { /* No slash found, therefore return '.' */ +#ifdef NETWARE + if(len_adjust == 0) { + path[0] = '.'; + path[1] = '\0'; + return 1; //only one character + } + else { + path[0] = '\0'; + return len_adjust; + } +#else path[0] = '.'; path[1] = '\0'; return 1 + len_adjust; +#endif } /* Strip slashes which came before the file name */