Mailing List Archive

cvs commit: apache-2.0/src/include httpd.h
wrowe 00/10/12 12:45:58

Modified: src/main util.c
src/include httpd.h
Log:
Modify ap_make_dirstr_prefix, platforms with HAVE_DRIVE_LETTERS or NETWARE
can request 0 elements, returning the '/' root.
[William Rowe, Tim Costello] from 1.3, with documentation

Revision Changes Path
1.71 +9 -1 apache-2.0/src/main/util.c

Index: util.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/main/util.c,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -r1.70 -r1.71
--- util.c 2000/10/09 22:57:51 1.70
+++ util.c 2000/10/12 19:45:55 1.71
@@ -529,7 +529,7 @@

s = d = name;

-#ifdef WIN32
+#ifdef HAVE_UNC_PATHS
/* Check for UNC names. Leave leading two slashes. */
if (s[0] == '/' && s[1] == '/')
*d++ = *s++;
@@ -563,6 +563,14 @@
*/
API_EXPORT(char *) ap_make_dirstr_prefix(char *d, const char *s, int n)
{
+#if defined(HAVE_DRIVE_LETTERS) || defined(NETWARE)
+ if (!n) {
+ *d = '/';
+ *++d = '\0';
+ return (d);
+ }
+#endif /* def HAVE_DRIVE_LETTERS || NETWARE */
+
for (;;) {
if (*s == '\0' || (*s == '/' && (--n) == 0)) {
*d = '/';



1.100 +5 -2 apache-2.0/src/include/httpd.h

Index: httpd.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/include/httpd.h,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -r1.99 -r1.100
--- httpd.h 2000/10/12 16:35:38 1.99
+++ httpd.h 2000/10/12 19:45:56 1.100
@@ -1323,13 +1323,16 @@
*/
API_EXPORT(int) ap_count_dirs(const char *path);
/**
- * copy at most n leading directories of s into d d should be at least as
- * large as s plus 1 extra byte assumes n > 0
+ * Copy at most n leading directories of s into d d should be at least as
+ * large as s plus 1 extra byte
* @param d The location to copy to
* @param s The location to copy from
* @param n The number of directories to copy
* @return value is the ever useful pointer to the trailing \0 of d
* @deffunc char *ap_make_dirstr_prefix(char *d, const char *s, int n)
+ * @tip on platforms with drive letters, n = 0 returns the "/" root,
+ * whereas n = 1 returns the "d:/" root. On all other platforms, n = 0
+ * returns the empty string.
*/
API_EXPORT(char *) ap_make_dirstr_prefix(char *d, const char *s, int n);
/**