fix path_get_extension, fixes #1368

This commit is contained in:
IntelOrca 2015-06-19 11:40:18 +01:00
parent 3140042b1d
commit 78a6e60083
2 changed files with 20 additions and 8 deletions

View File

@ -58,24 +58,36 @@ const char *path_get_filename(const char *path)
const char *path_get_extension(const char *path) const char *path_get_extension(const char *path)
{ {
const char *extension = NULL;
const char *ch = path; const char *ch = path;
while (*ch != '.' && *ch != 0) { while (*ch != 0) {
if (*ch == '.')
extension = ch;
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; char *ch = path;
while (*ch != '.' && *ch != 0) { while (*ch != 0) {
if (*ch == '.')
extension = ch;
ch++; ch++;
} }
if (extension == NULL)
extension = ch;
if (extension[0] != '.') if (newExtension[0] != '.')
*ch++ = '.'; *extension++ = '.';
strcpy(ch, extension); strcpy(extension, newExtension);
} }
void path_remove_extension(char *path) void path_remove_extension(char *path)

View File

@ -29,7 +29,7 @@ int mph_to_kmph(int mph);
const char *path_get_filename(const char *path); const char *path_get_filename(const char *path);
const char *path_get_extension(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); void path_remove_extension(char *path);
long fsize(FILE *fp); long fsize(FILE *fp);
bool readentirefile(const char *path, void **outBuffer, long *outLength); bool readentirefile(const char *path, void **outBuffer, long *outLength);