Simplify __imlib_FileExtension()

__imlib_FileExtension() has (presumably by mistake) never used the
"real" file name to determine the extension so let's just drop all the
strdup'ing and return a pointer into the file string.
This commit is contained in:
Kim Woelders 2019-11-12 16:26:44 +01:00
parent 7b3b5f7f0c
commit 57b4b12c7e
3 changed files with 8 additions and 23 deletions

View File

@ -92,26 +92,16 @@ __imlib_FileRealFile(const char *file)
return newfile; return newfile;
} }
char * const char *
__imlib_FileExtension(const char *file) __imlib_FileExtension(const char *file)
{ {
char *p; const char *p;
char *fl;
fl = __imlib_FileRealFile(file);
if (!fl)
return strdup("");
p = strrchr(file, '.'); p = strrchr(file, '.');
if (p) if (!p)
{ return NULL;
char *ret; p++;
return *p != '\0' ? p : NULL;
ret = strdup(p + 1);
free(fl);
return ret;
}
free(fl);
return strdup("");
} }
int int

View File

@ -5,7 +5,7 @@
char *__imlib_FileKey(const char *file); char *__imlib_FileKey(const char *file);
char *__imlib_FileRealFile(const char *file); char *__imlib_FileRealFile(const char *file);
char *__imlib_FileExtension(const char *file); const char *__imlib_FileExtension(const char *file);
int __imlib_FileExists(const char *s); int __imlib_FileExists(const char *s);
int __imlib_FileIsFile(const char *s); int __imlib_FileIsFile(const char *s);
int __imlib_FileIsDir(const char *s); int __imlib_FileIsDir(const char *s);

View File

@ -788,14 +788,9 @@ __imlib_FindBestLoaderForFormat(const char *format, int for_save)
__EXPORT__ ImlibLoader * __EXPORT__ ImlibLoader *
__imlib_FindBestLoaderForFile(const char *file, int for_save) __imlib_FindBestLoaderForFile(const char *file, int for_save)
{ {
char *extension;
ImlibLoader *l; ImlibLoader *l;
extension = __imlib_FileExtension(file); l = __imlib_FindBestLoaderForFormat(__imlib_FileExtension(file), for_save);
l = __imlib_FindBestLoaderForFormat(extension, for_save);
free(extension);
return l; return l;
} }