44 rsString.
Copy(
"empty");
53 if (rsString.
ReplaceChar(
'\\',
'_')) fValid =
false;
58 if (rsString.
Replace(
"..",
"__")) fValid =
false;
59 if (*rsString.
getData() ==
'/' || *rsString.
getData() ==
'\\') { *rsString.
getMData() =
'_'; fValid =
false; }
73 if (*rsString.
getData() ==
':') { *rsString.
getMData() =
'_'; fValid =
false; }
79 *rsString.
getMPtr(1)=
'_'; fValid =
false;
81 else if (!isalpha((
unsigned char)*rsString.
getData()) || (*rsString.
getPtr(2)!=
'\\' && *rsString.
getPtr(2)!=
'/'))
111 if (rsString.
getLength() > 30) fValid =
false;
112 if (rsString.
getLength() < 2) fValid =
false;
113 if (!rsString.
ValidateChars(
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_^{[]}",
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_^{[]}0123456789|-")) { fValid =
false; rsString.
Copy(
"Guest"); }
119 if (!fValid) rsString.
Copy(
"Guest");
125 if (rsString.
getLength() < 2) { fValid =
false; rsString.
Copy(
"secret"); }
126 if (rsString.
ReplaceChar(
' ',
'_')) fValid =
false;
131 std::vector<StdCopyStrBuf> chans;
136 chans.push_back(tmp);
139 chans.push_back(tmp);
141 for(std::vector<StdCopyStrBuf>::iterator it = chans.begin(); it < chans.end(); ++it)
143 if (it->getLength() > 32) { fValid =
false; it->SetLength(32); }
144 else if (it->getLength() < 2) { fValid =
false; it->Clear(); }
145 else if (*it->getData() !=
'#' && *it->getData() !=
'+') { fValid =
false; it->InsertChar(
'#', 0); }
146 if (it->ReplaceChar(
' ',
'_')) fValid =
false;
148 if(it+1 < chans.end() && it->getLength() > 0) rsString.
Append(
",");
159 assert(!
"not yet implemented");
162 if (
false)
if (!fValid)
164 const char *szOption =
"unknown";
175 case VAL_IRCPass: szOption =
"IRC password";
break;
179 LogF(R
"(WARNING: Adjusted invalid user input for "%s" to "%s")", szOption, rsString.getData());
184 bool ValidateInt(int32_t &riVal, int32_t iMinVal, int32_t iMaxVal)
186 if (riVal < iMinVal) { riVal = iMinVal;
return false; }
187 else if (riVal > iMaxVal) { riVal = iMaxVal;
return false; }
bool LogF(const char *strMessage,...)
void SCopy(const char *szSource, char *sTarget, size_t iMaxL)
bool SEqualNoCase(const char *szStr1, const char *szStr2, int iLen)
static bool StripMarkup(char *szText)
void SetLength(size_t iLength)
int Replace(const char *szOld, const char *szNew, size_t iStartSearch=0)
const char * getData() const
bool SplitAtChar(char cSplit, StdStrBuf *psSplit)
bool ValidateChars(const char *szInitialChars, const char *szMidChars)
void Append(const char *pnData, size_t iChars)
int ReplaceChar(char cOld, char cNew)
const char * getPtr(size_t i) const
bool ValidateString(char *szString, ValidationOption eOption, size_t iMaxSize)
bool ValidateInt(int32_t &riVal, int32_t iMinVal, int32_t iMaxVal)