mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-19 14:38:18 +00:00
Move filename clearing function to base lib
This commit is contained in:
parent
5721612761
commit
a3a82b6571
|
@ -2011,6 +2011,17 @@ void str_sanitize(char *str_in)
|
|||
}
|
||||
}
|
||||
|
||||
void str_sanitize_filename(char *str_in)
|
||||
{
|
||||
unsigned char *str = (unsigned char *)str_in;
|
||||
while(*str)
|
||||
{
|
||||
if(*str < 32 || *str == '\\' || *str == '/' || *str == '|' || *str == ':' || *str == '*' || *str == '?' || *str == '<' || *str == '>' || *str == '"')
|
||||
*str = ' ';
|
||||
str++;
|
||||
}
|
||||
}
|
||||
|
||||
char *str_skip_to_whitespace(char *str)
|
||||
{
|
||||
while(*str && (*str != ' ' && *str != '\t' && *str != '\n'))
|
||||
|
|
|
@ -847,6 +847,18 @@ void str_sanitize_cc(char *str);
|
|||
*/
|
||||
void str_sanitize(char *str);
|
||||
|
||||
/*
|
||||
Function: str_sanitize_filename
|
||||
Replaces all invalid filename characters with whitespace.
|
||||
|
||||
Parameters:
|
||||
str - String to sanitize.
|
||||
|
||||
Remarks:
|
||||
- The strings are treated as zero-termineted strings.
|
||||
*/
|
||||
void str_sanitize_filename(char *str);
|
||||
|
||||
/*
|
||||
Function: str_skip_to_whitespace
|
||||
Skips leading non-whitespace characters(all but ' ', '\t', '\n', '\r').
|
||||
|
|
|
@ -3596,22 +3596,12 @@ const char *CClient::GetCurrentMapPath()
|
|||
return m_aCurrentMapPath;
|
||||
}
|
||||
|
||||
void ClearFilename(char *pStr)
|
||||
{
|
||||
while(*pStr)
|
||||
{
|
||||
if(*pStr == '\\' || *pStr == '/' || *pStr == '|' || *pStr == ':' || *pStr == '*' || *pStr == '?' || *pStr == '<' || *pStr == '>' || *pStr == '"')
|
||||
*pStr = '%';
|
||||
pStr++;
|
||||
}
|
||||
}
|
||||
|
||||
void CClient::RaceRecord_GetName(char *pBuf, int Size, int Time)
|
||||
{
|
||||
// check the player name
|
||||
char aPlayerName[MAX_NAME_LENGTH];
|
||||
str_copy(aPlayerName, g_Config.m_PlayerName, sizeof(aPlayerName));
|
||||
ClearFilename(aPlayerName);
|
||||
str_sanitize_filename(aPlayerName);
|
||||
|
||||
if(Time < 0)
|
||||
str_format(pBuf, Size, "%s_tmp_%d", m_aCurrentMap, pid());
|
||||
|
@ -3653,7 +3643,7 @@ void CClient::Ghost_GetPath(char *pBuf, int Size, const char *pPlayerName, int T
|
|||
// check the player name
|
||||
char aPlayerName[MAX_NAME_LENGTH];
|
||||
str_copy(aPlayerName, pPlayerName, sizeof(aPlayerName));
|
||||
ClearFilename(aPlayerName);
|
||||
str_sanitize_filename(aPlayerName);
|
||||
|
||||
if(Time < 0)
|
||||
str_format(pBuf, Size, "ghosts/%s_%s_%08x_tmp_%d.gho", m_aCurrentMap, aPlayerName, m_pMap->Crc(), pid());
|
||||
|
|
|
@ -176,14 +176,7 @@ bool CRaceDemo::CheckDemo(int Time) const
|
|||
{
|
||||
char aPlayerName[MAX_NAME_LENGTH];
|
||||
str_copy(aPlayerName, g_Config.m_PlayerName, sizeof(aPlayerName));
|
||||
char *pStr = aPlayerName;
|
||||
|
||||
while(*pStr)
|
||||
{
|
||||
if(*pStr == '\\' || *pStr == '/' || *pStr == '|' || *pStr == ':' || *pStr == '*' || *pStr == '?' || *pStr == '<' || *pStr == '>' || *pStr == '"')
|
||||
*pStr = '%';
|
||||
pStr++;
|
||||
}
|
||||
str_sanitize_filename(aPlayerName);
|
||||
|
||||
if(!str_find(pDemoName, aPlayerName))
|
||||
continue;
|
||||
|
|
Loading…
Reference in a new issue