kwo pushed a commit to branch master. http://git.enlightenment.org/legacy/imlib2.git/commit/?id=57b4b12c7e8d45a4cdd7deb0da4dcdcd9b048a33
commit 57b4b12c7e8d45a4cdd7deb0da4dcdcd9b048a33 Author: Kim Woelders <[email protected]> Date: Tue Nov 12 16:26:44 2019 +0100 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. --- src/lib/file.c | 22 ++++++---------------- src/lib/file.h | 2 +- src/lib/image.c | 7 +------ 3 files changed, 8 insertions(+), 23 deletions(-) diff --git a/src/lib/file.c b/src/lib/file.c index 4e61752..aa9fb05 100644 --- a/src/lib/file.c +++ b/src/lib/file.c @@ -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 diff --git a/src/lib/file.h b/src/lib/file.h index bff573b..ba34b51 100644 --- a/src/lib/file.h +++ b/src/lib/file.h @@ -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); diff --git a/src/lib/image.c b/src/lib/image.c index 28eee8f..d9a8af6 100644 --- a/src/lib/image.c +++ b/src/lib/image.c @@ -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; } --
