]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
On Windows, it is possible that the program name should have a slash '/'
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Mon, 20 Feb 2012 08:14:57 +0000 (17:14 +0900)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Mon, 20 Feb 2012 20:25:38 +0000 (05:25 +0900)
character not only a backslash '\' character. We have to check both
a slash and a backslash to get the running program name of bsdcpio or
bsdtar.

cpio/cpio.c
tar/bsdtar.c

index 4f5b3f6b6328a4cec8ccb435f2e2ccf285890b5b..2c28d884dbe3722b0c55ed02253362b5df158ef8 100644 (file)
@@ -156,9 +156,9 @@ main(int argc, char *argv[])
        else {
 #if defined(_WIN32) && !defined(__CYGWIN__)
                lafe_progname = strrchr(*argv, '\\');
-#else
-               lafe_progname = strrchr(*argv, '/');
+               if (strrchr(*argv, '/') > lafe_progname)
 #endif
+               lafe_progname = strrchr(*argv, '/');
                if (lafe_progname != NULL)
                        lafe_progname++;
                else
index c1fae6a0dc96769b36f9c8ced93cc85a8a3c73a0..b8904bffcb39a1957ab900c169f605c48148c01d 100644 (file)
@@ -183,9 +183,9 @@ main(int argc, char **argv)
        else {
 #if defined(_WIN32) && !defined(__CYGWIN__)
                lafe_progname = strrchr(*argv, '\\');
-#else
-               lafe_progname = strrchr(*argv, '/');
+               if (strrchr(*argv, '/') > lafe_progname)
 #endif
+               lafe_progname = strrchr(*argv, '/');
                if (lafe_progname != NULL)
                        lafe_progname++;
                else