From 41fed461fa1c04e501cbda49a368751d93b73195 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Sun, 18 Nov 2012 00:45:39 +0000 Subject: [PATCH] Fix Swig_file_extension when the path has a . and there is no extension in the filename git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13905 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Source/Swig/include.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/Source/Swig/include.c b/Source/Swig/include.c index 6e76f86ba..5d37dad7e 100644 --- a/Source/Swig/include.c +++ b/Source/Swig/include.c @@ -323,19 +323,11 @@ File *Swig_filebyname(const_String_or_char_ptr filename) { * ----------------------------------------------------------------------------- */ String *Swig_file_extension(const_String_or_char_ptr filename) { - const char *d; - const char *c = Char(filename); - int len = Len(filename); - if (strlen(c)) { - d = c + len - 1; - while (d != c) { - if (*d == '.') - return NewString(d); - d--; - } - return NewString(c + len); - } - return NewString(c); + String *name = Swig_file_filename(filename); + const char *c = strrchr(Char(name), '.'); + String *extension = c ? NewString(c) : NewString(""); + Delete(name); + return extension; } /* -----------------------------------------------------------------------------