Fix to problems with regex characters in group names.
Stolen from https://bitbucket.org/squire_linden/viewer-dev-chop-662/changeset/6f971899f351
This commit is contained in:
@@ -142,9 +142,6 @@ std::string glob_to_regex(const std::string& glob)
|
|||||||
|
|
||||||
switch (c)
|
switch (c)
|
||||||
{
|
{
|
||||||
case '.':
|
|
||||||
regex+="\\.";
|
|
||||||
break;
|
|
||||||
case '*':
|
case '*':
|
||||||
if (glob.begin() == i)
|
if (glob.begin() == i)
|
||||||
{
|
{
|
||||||
@@ -177,6 +174,14 @@ std::string glob_to_regex(const std::string& glob)
|
|||||||
case '!':
|
case '!':
|
||||||
regex+= square_brace_open ? '^' : c;
|
regex+= square_brace_open ? '^' : c;
|
||||||
break;
|
break;
|
||||||
|
case '.': // This collection have different regex meaning
|
||||||
|
case '^': // And so need escaping
|
||||||
|
case '(':
|
||||||
|
case ')':
|
||||||
|
case '+':
|
||||||
|
case '|':
|
||||||
|
case '$':
|
||||||
|
regex+='\\';
|
||||||
default:
|
default:
|
||||||
regex+=c;
|
regex+=c;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ std::string LLLogChat::makeLogFileName(std::string filename)
|
|||||||
|
|
||||||
std::string LLLogChat::cleanFileName(std::string filename)
|
std::string LLLogChat::cleanFileName(std::string filename)
|
||||||
{
|
{
|
||||||
std::string invalidChars = "\"\'\\/?*:<>|";
|
std::string invalidChars = "\"\'\\/?*:<>|[]{}~"; // Cannot match glob or illegal filename chars
|
||||||
S32 position = filename.find_first_of(invalidChars);
|
S32 position = filename.find_first_of(invalidChars);
|
||||||
while (position != filename.npos)
|
while (position != filename.npos)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user