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;
}
char *
const char *
__imlib_FileExtension(const char *file)
{
char *p;
char *fl;
const char *p;
fl = __imlib_FileRealFile(file);
if (!fl)
return strdup("");
p = strrchr(file, '.');
if (p)
{
char *ret;
ret = strdup(p + 1);
free(fl);
return ret;
}
free(fl);
return strdup("");
if (!p)
return NULL;
p++;
return *p != '\0' ? p : NULL;
}
int

View File

@ -5,7 +5,7 @@
char *__imlib_FileKey(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_FileIsFile(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 *
__imlib_FindBestLoaderForFile(const char *file, int for_save)
{
char *extension;
ImlibLoader *l;
extension = __imlib_FileExtension(file);
l = __imlib_FindBestLoaderForFormat(extension, for_save);
free(extension);
l = __imlib_FindBestLoaderForFormat(__imlib_FileExtension(file), for_save);
return l;
}