OSDN Git Service

Should not use the basename() function.
authorKoji Arai <jca02266@gmail.com>
Thu, 22 May 2008 15:04:23 +0000 (00:04 +0900)
committerKoji Arai <jca02266@gmail.com>
Thu, 22 May 2008 15:04:23 +0000 (00:04 +0900)
ar.c
pathlib.c

diff --git a/ar.c b/ar.c
index bbcd9b4..585e43d 100644 (file)
--- a/ar.c
+++ b/ar.c
@@ -743,11 +743,10 @@ write_header_lv1(FILE *fp, struct lzh_header *h)
     char *dirname, *fname;
     int dirnamelen;
 
-    fname  = basename(h->filename);
+    fname  = xbasename(h->filename);
     dirname   = h->filename;
     dirnamelen = fname - dirname;
     h->namelen = strlen(fname);
-    printf("namelen = %d\n", h->namelen);
 
     headersize = 25;
 
@@ -829,7 +828,7 @@ write_header_lv2(FILE *fp, struct lzh_header *h)
     crcptr = &buf[pos];
     put_header(buf, &pos, 2, 0); /* crc (dummy) */
 
-    fname = basename(h->filename);
+    fname = xbasename(h->filename);
     len = strlen(fname);
 
     put_header(buf, &pos, 2, 3 + len);
@@ -841,9 +840,6 @@ write_header_lv2(FILE *fp, struct lzh_header *h)
 
         ptr = strrchr(h->filename, '/');
         if (ptr) {
-            /* 0123 */
-            /* abc/ */
-            /* 3 - 0 = 3 */
             dirnamelen = ptr - h->filename;
             strncpy(dirname, h->filename, dirnamelen);
             dirname[dirnamelen+ 1] = 0;
index d11fe52..287080d 100644 (file)
--- a/pathlib.c
+++ b/pathlib.c
@@ -23,7 +23,7 @@
 */
 
 #include <string.h>
-#define HAVE_BASENAME 1
+#define HAVE_BASENAME 0
 #define HAVE_DIRNAME 1
 
 int
@@ -39,9 +39,9 @@ path_addsep(char *path, size_t size)
     return len;
 }
 
-#ifndef HAVE_BASENAME
+#if !HAVE_BASENAME
 char *
-basename(char *path)
+xbasename(char *path)
 {
     char *p1, *p2;
     int len;
@@ -64,7 +64,7 @@ basename(char *path)
 }
 #endif /* !HAVE_BASENAME */
 
-#ifndef HAVE_DIRNAME
+#if !HAVE_DIRNAME
 char *
 dirname(char *path)
 {