diff --git a/src/util/util.c b/src/util/util.c index d6e12c0723..bf856238fa 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -58,24 +58,36 @@ const char *path_get_filename(const char *path) const char *path_get_extension(const char *path) { + const char *extension = NULL; const char *ch = path; - while (*ch != '.' && *ch != 0) { + while (*ch != 0) { + if (*ch == '.') + extension = ch; + ch++; } - return ch; + if (extension == NULL) + extension = ch; + return extension; } -void path_set_extension(char *path, const char *extension) +void path_set_extension(char *path, const char *newExtension) { + char *extension = NULL; char *ch = path; - while (*ch != '.' && *ch != 0) { + while (*ch != 0) { + if (*ch == '.') + extension = ch; + ch++; } + if (extension == NULL) + extension = ch; - if (extension[0] != '.') - *ch++ = '.'; + if (newExtension[0] != '.') + *extension++ = '.'; - strcpy(ch, extension); + strcpy(extension, newExtension); } void path_remove_extension(char *path) diff --git a/src/util/util.h b/src/util/util.h index 0b3a36c6c2..e8d8cca36d 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -29,7 +29,7 @@ int mph_to_kmph(int mph); const char *path_get_filename(const char *path); const char *path_get_extension(const char *path); -void path_set_extension(char *path, const char *extension); +void path_set_extension(char *path, const char *newExtension); void path_remove_extension(char *path); long fsize(FILE *fp); bool readentirefile(const char *path, void **outBuffer, long *outLength);