mirror of
https://github.com/rehlds/rehlds.git
synced 2025-02-05 18:20:45 +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)
|
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];
|
static char exten[MAX_PATH];
|
||||||
char *c, *d = nullptr;
|
char *c, *d = nullptr;
|
||||||
int i;
|
int i;
|
||||||
@ -235,6 +252,7 @@ char *COM_FileExtension(char *in)
|
|||||||
|
|
||||||
exten[i] = '\0';
|
exten[i] = '\0';
|
||||||
return exten;
|
return exten;
|
||||||
|
#endif // #ifdef HLTV_FIXES
|
||||||
}
|
}
|
||||||
|
|
||||||
char com_token[COM_TOKEN_LEN];
|
char com_token[COM_TOKEN_LEN];
|
||||||
|
@ -1354,6 +1354,23 @@ void COM_StripExtension(char *in, char *out)
|
|||||||
|
|
||||||
char *COM_FileExtension(char *in)
|
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];
|
static char exten[MAX_PATH];
|
||||||
char *c, *d = NULL;
|
char *c, *d = NULL;
|
||||||
int i;
|
int i;
|
||||||
@ -1385,8 +1402,8 @@ char *COM_FileExtension(char *in)
|
|||||||
exten[i] = *d;
|
exten[i] = *d;
|
||||||
}
|
}
|
||||||
exten[i] = 0;
|
exten[i] = 0;
|
||||||
|
|
||||||
return exten;
|
return exten;
|
||||||
|
#endif // #ifdef REHLDS_FIXES
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fills "out" with the file name without path and extension.
|
// Fills "out" with the file name without path and extension.
|
||||||
|
@ -29,9 +29,11 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
#define PATHSEPARATOR(c) ((c) == '\\' || (c) == '/')
|
||||||
const char CORRECT_PATH_SEPARATOR = '\\';
|
const char CORRECT_PATH_SEPARATOR = '\\';
|
||||||
const char INCORRECT_PATH_SEPARATOR = '/';
|
const char INCORRECT_PATH_SEPARATOR = '/';
|
||||||
#else
|
#else
|
||||||
|
#define PATHSEPARATOR(c) ((c) == '/')
|
||||||
const char CORRECT_PATH_SEPARATOR = '/';
|
const char CORRECT_PATH_SEPARATOR = '/';
|
||||||
const char INCORRECT_PATH_SEPARATOR = '\\';
|
const char INCORRECT_PATH_SEPARATOR = '\\';
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user