diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2009-02-08 10:37:50 +0200 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2009-02-08 10:37:50 +0200 |
commit | 79e25eded48d2fe33f31441ab7a034f902e335f8 (patch) | |
tree | 722ed10f7f9716e68c2fbdd57c85b7547b94c4bf | |
parent | Omit the wrong and (even if corrected) nowadays useless rm (diff) | |
download | xz-79e25eded48d2fe33f31441ab7a034f902e335f8.tar.xz |
Support both slash and backslash as path component
separator on Windows when parsing argv[0].
Diffstat (limited to '')
-rw-r--r-- | src/xz/args.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/xz/args.c b/src/xz/args.c index c9d1dc14..93cd220a 100644 --- a/src/xz/args.c +++ b/src/xz/args.c @@ -425,11 +425,20 @@ args_parse(args_info *args, int argc, char **argv) // Check how we were called. { // Remove the leading path name, if any. +#ifdef _WIN32 + // Some systems support both / and \ to separate path + // components. + const char *name = argv[0] + strlen(argv[0]); + while (argv[0] < name && name[-1] != '/' && name[-1] != '\\') + --name; +#else + // POSIX const char *name = strrchr(argv[0], '/'); if (name == NULL) name = argv[0]; else ++name; +#endif // NOTE: It's possible that name[0] is now '\0' if argv[0] // is weird, but it doesn't matter here. |