mirror of
https://github.com/rehlds/rehlds.git
synced 2025-02-05 10:10:44 +03:00
Reworked COM_FileExtension (Fixed #716)
This commit is contained in:
parent
5b6856876e
commit
6520ab54b0
@ -201,6 +201,23 @@ void COM_DefaultExtension(char *path, char *extension)
|
||||
|
||||
char *COM_FileExtension(char *in)
|
||||
{
|
||||
#ifdef HLTV_FIXES
|
||||
char *src = in + Q_strlen(in) - 1;
|
||||
|
||||
// back up until a . or the start
|
||||
while (src != in && *(src - 1) != '.')
|
||||
{
|
||||
src--;
|
||||
}
|
||||
|
||||
// check to see if the '.' is part of a input buffer
|
||||
if (src == in || PATHSEPARATOR(*src))
|
||||
{
|
||||
return ""; // no extension
|
||||
}
|
||||
|
||||
return src;
|
||||
#else // #ifdef HLTV_FIXES
|
||||
static char exten[MAX_PATH];
|
||||
char *c, *d = nullptr;
|
||||
int i;
|
||||
@ -235,6 +252,7 @@ char *COM_FileExtension(char *in)
|
||||
|
||||
exten[i] = '\0';
|
||||
return exten;
|
||||
#endif // #ifdef HLTV_FIXES
|
||||
}
|
||||
|
||||
char com_token[COM_TOKEN_LEN];
|
||||
|
@ -1354,6 +1354,23 @@ void COM_StripExtension(char *in, char *out)
|
||||
|
||||
char *COM_FileExtension(char *in)
|
||||
{
|
||||
#ifdef REHLDS_FIXES
|
||||
char *src = in + Q_strlen(in) - 1;
|
||||
|
||||
// back up until a . or the start
|
||||
while (src != in && *(src - 1) != '.')
|
||||
{
|
||||
src--;
|
||||
}
|
||||
|
||||
// check to see if the '.' is part of a input buffer
|
||||
if (src == in || PATHSEPARATOR(*src))
|
||||
{
|
||||
return ""; // no extension
|
||||
}
|
||||
|
||||
return src;
|
||||
#else // #ifdef REHLDS_FIXES
|
||||
static char exten[MAX_PATH];
|
||||
char *c, *d = NULL;
|
||||
int i;
|
||||
@ -1385,8 +1402,8 @@ char *COM_FileExtension(char *in)
|
||||
exten[i] = *d;
|
||||
}
|
||||
exten[i] = 0;
|
||||
|
||||
return exten;
|
||||
#endif // #ifdef REHLDS_FIXES
|
||||
}
|
||||
|
||||
// Fills "out" with the file name without path and extension.
|
||||
|
@ -29,9 +29,11 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef _WIN32
|
||||
#define PATHSEPARATOR(c) ((c) == '\\' || (c) == '/')
|
||||
const char CORRECT_PATH_SEPARATOR = '\\';
|
||||
const char INCORRECT_PATH_SEPARATOR = '/';
|
||||
#else
|
||||
#define PATHSEPARATOR(c) ((c) == '/')
|
||||
const char CORRECT_PATH_SEPARATOR = '/';
|
||||
const char INCORRECT_PATH_SEPARATOR = '\\';
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user