Mmmmh... a few things are not clear to me:
For example: Why did you remove theis code:
#ifdef __WXMSW__ // This is a Windows only bug!
else if (c == 178 || c == 179 || c == 185) // fetch ² and ³
{
str = c;
MoveToNextChar();
}
#endif
???
This re-introduces a critical crash-bug on Windows?!
You've removed quite some portions... could you explain a little more why exactly? Or did you have a difference code base?
Is there other question or comments?
Sure. ;-)
The other thing is: Your re-factored the SkipUnwanted(bool bGetValue) quite heavily including the removal of handling of preprocessor directives (which makes m_IsPreprocessor and m_LastPreprocessor obsolete btw.). Why? This was working great?!
Finally shouldn't statements like:
if ( m_State & tsSkipQuestion )
better be:
if ( (m_State & tsSkipQuestion) == tsSkipQuestion)
(Need to have a look myself to see how the bits are defined though...)