replaced COM_FileExtension by a slightly better version from uhexen2,

renamed it to COM_FileGetExtension, added a prototype to common.h.

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@454 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
Ozkan Sezer 2011-05-20 20:38:11 +00:00
parent d8abc078e1
commit 45498a99a4
2 changed files with 15 additions and 12 deletions

View file

@ -919,23 +919,25 @@ void COM_StripExtension (const char *in, char *out)
/* /*
============ ============
COM_FileExtension COM_FileGetExtension - doesn't return NULL
============ ============
*/ */
const char *COM_FileExtension (const char *in) const char *COM_FileGetExtension (const char *in)
{ {
static char exten[8]; const char *src;
int i; size_t len;
while (*in && *in != '.') len = strlen(in);
in++; if (len < 2) /* nothing meaningful */
if (!*in)
return ""; return "";
in++;
for (i=0 ; i<7 && *in ; i++,in++) src = in + len - 1;
exten[i] = *in; while (src != in && src[-1] != '.')
exten[i] = 0; src--;
return exten; if (src == in || strchr(src, '/') != NULL || strchr(src, '\\') != NULL)
return ""; /* no extension, or parent directory has a dot */
return src;
} }
/* /*

View file

@ -178,6 +178,7 @@ const char *COM_SkipPath (const char *pathname);
void COM_StripExtension (const char *in, char *out); void COM_StripExtension (const char *in, char *out);
void COM_FileBase (const char *in, char *out); void COM_FileBase (const char *in, char *out);
void COM_DefaultExtension (char *path, const char *extension); void COM_DefaultExtension (char *path, const char *extension);
const char *COM_FileGetExtension (const char *in);
void COM_CreatePath (char *path); void COM_CreatePath (char *path);
char *va (const char *format, ...) __attribute__((__format__(__printf__,1,2))); char *va (const char *format, ...) __attribute__((__format__(__printf__,1,2)));