Windows 10 and Linux Muparser name allowable character sets are different?

44 views Asked by At

In a C++ code using the muparser-2.2.6.1 I have parser names defined as class hierarchy:

ClassA.classB.classC = value

This name is parsed correctly on Linux, but rejected because it contains "." on windows 10, because it is outside the "a_szCharset" defined in muparser:

parser.DefineNameChars("0123456789_"
                       "abcdefghijklmnopqrstuvwxyz"
                       "ABCDEFGHIJKLMNOPQRSTUVWXYZ");

Why the same allowable character set works in Linux and not on Windows?! How can I extend the name char set and find a solution?

1

There are 1 answers

0
zuheyr alsalihi On

I partly answer my question:

I simply added "." in the allowable character set and it works:

void Parser::InitCharSets() { DefineNameChars( T("0123456789.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") );

}

BUT I still do not know why it works on Linux out of box...?!

Many thanks for reading.