]> 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 08:14:57 +0000 (17:14 +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 627e9c019bb49a16f7760e7909afe236a29871aa..081f211e17cae57a21002d1fcd5633abb0bbd30b 100644 (file)
@@ -155,9 +155,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 52b5c91badd16b77fbf009219e66614d9a5faf4e..b92ada1ecb3ca3069efebcd0353db3fe229fbdab 100644 (file)
@@ -179,9 +179,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