diff options
author | Sean Purcell <me@seanp.xyz> | 2017-03-24 23:33:14 (GMT) |
---|---|---|
committer | Sean Purcell <me@seanp.xyz> | 2017-03-24 23:33:14 (GMT) |
commit | e9c3b14f29486feee823f95b238fe0a83fb64670 (patch) | |
tree | ba031ec62f3d40dffce281527c14e06a3c36173d | |
parent | 6b2a1b3606be01a0b4899a1aaa566f0943064da9 (diff) | |
download | lz4-e9c3b14f29486feee823f95b238fe0a83fb64670.zip lz4-e9c3b14f29486feee823f95b238fe0a83fb64670.tar.gz lz4-e9c3b14f29486feee823f95b238fe0a83fb64670.tar.bz2 |
Ignore extensions in exe name matching
-rw-r--r-- | programs/lz4cli.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/programs/lz4cli.c b/programs/lz4cli.c index 0578bde..da02b81 100644 --- a/programs/lz4cli.c +++ b/programs/lz4cli.c @@ -242,10 +242,19 @@ static void waitEnter(void) static const char* lastNameFromPath(const char* path) { - const char* name = strrchr(path, '/'); - if (name==NULL) name = strrchr(path, '\\'); /* windows */ - if (name==NULL) return path; - return name+1; + const char* name = path; + if (strrchr(name, '/')) name = strrchr(name, '/') + 1; + if (strrchr(name, '\\')) name = strrchr(name, '\\') + 1; /* windows */ + return name; +} + +/*! exeNameMatch() : + @return : a non-zero value if exeName matches test, excluding the extension + */ +static int exeNameMatch(const char* exeName, const char* test) +{ + return !strncmp(exeName, test, strlen(test)) && + (exeName[strlen(test)] == '\0' || exeName[strlen(test)] == '.'); } /*! readU32FromChar() : @@ -297,7 +306,7 @@ int main(int argc, const char** argv) LZ4IO_setOverwrite(0); /* lz4cat predefined behavior */ - if (!strcmp(exeName, LZ4CAT)) { + if (exeNameMatch(exeName, LZ4CAT)) { mode = om_decompress; LZ4IO_setOverwrite(1); LZ4IO_setRemoveSrcFile(0); @@ -306,7 +315,7 @@ int main(int argc, const char** argv) displayLevel=1; multiple_inputs=1; } - if (!strcmp(exeName, UNLZ4)) { mode = om_decompress; } + if (exeNameMatch(exeName, UNLZ4)) { mode = om_decompress; } /* command switches */ for(i=1; i<argc; i++) { |