changeset 590:cf44c49093fd

(basename): Rewrite so it doesn't rely on strrchr, and hence doesn't need to include string.h -- on some alpha-based OSF systems, there's a conflicting prototype for basename in string.h. Reported by Kaveh Ghazi.
author Jim Meyering <jim@meyering.net>
date Fri, 19 Apr 1996 04:41:27 +0000
parents 7a4c77f099c7
children 8088065f7ad8
files lib/basename.c
diffstat 1 files changed, 10 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lib/basename.c	Thu Apr 18 23:02:17 1996 +0000
+++ b/lib/basename.c	Fri Apr 19 04:41:27 1996 +0000
@@ -19,23 +19,20 @@
 #include <config.h>
 #endif
 
-#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
-#include <string.h>
-#else
-#include <strings.h>
-#ifndef strrchr
-#define strrchr rindex
-#endif
-#endif
-
-/* Return NAME with any leading path stripped off.  */
+/* Return NAME with any leading path stripped off.
+   Don't use strrchr/rindex.  */
 
 char *
 basename (name)
      const char *name;
 {
-  char *base;
+  const char *base = name;
 
-  base = strrchr (name, '/');
-  return base ? base + 1 : (char *) name;
+  while (*name)
+    {
+      if (*name == '/')
+	base = name + 1;
+      ++name;
+    }
+  return (char *) base;
 }