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 */