void InternalizeValue( Substring src, AString dest ) { src.Trim(); bool inUnquoted= true; bool inQuote= false; bool lastWasSlash= false; while( src.IsNotEmpty() ) { char c= src.Consume(); if( lastWasSlash ) { lastWasSlash= false; char escChr= c == '\\' ? '\\' : c == 'n' ? '\n' : c == 'r' ? '\r' : c == 't' ? '\t' : c == '"' ? '"' : c; dest._(escChr); continue; } if( c== '\\' ) { lastWasSlash= true; continue; } if( c== '"' ) { inQuote= !inQuote; inUnquoted= false; continue; } if( inQuote || inUnquoted ) { dest._(c); continue; } if( CString.IndexOf( CString.DefaultWhitespaces, c) >= 0 ) continue; inUnquoted= true; dest._(c); } }