diff --git a/quakespasm/Quake/common.c b/quakespasm/Quake/common.c index a4fdb10f..45b80096 100644 --- a/quakespasm/Quake/common.c +++ b/quakespasm/Quake/common.c @@ -955,6 +955,20 @@ const char *COM_FileGetExtension (const char *in) return src; } +/* +============ +COM_ExtractExtension +============ +*/ +void COM_ExtractExtension (const char *in, char *out, size_t outsize) +{ + const char *ext = COM_FileGetExtension (in); + if (! *ext) + *out = '\0'; + else + q_strlcpy (out, ext, outsize); +} + /* ============ COM_FileBase diff --git a/quakespasm/Quake/common.h b/quakespasm/Quake/common.h index 50f14595..cfd3e3b6 100644 --- a/quakespasm/Quake/common.h +++ b/quakespasm/Quake/common.h @@ -181,7 +181,8 @@ const char *COM_SkipPath (const char *pathname); void COM_StripExtension (const char *in, char *out, size_t outsize); void COM_FileBase (const char *in, char *out, size_t outsize); void COM_DefaultExtension (char *path, const char *extension, size_t len); -const char *COM_FileGetExtension (const char *in); +const char *COM_FileGetExtension (const char *in); /* doesn't return NULL */ +void COM_ExtractExtension (const char *in, char *out, size_t outsize); void COM_CreatePath (char *path); char *va (const char *format, ...) __attribute__((__format__(__printf__,1,2)));