From: eap Date: Mon, 16 Mar 2009 07:56:53 +0000 (+0000) Subject: 0020217: EDF SMESH: Dump file with mesh and group on geom is wrong X-Git-Tag: V4_1_5rc1~16 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=commitdiff_plain;h=97cfab41f021b51b43653cc625a503f2093cac1d 0020217: EDF SMESH: Dump file with mesh and group on geom is wrong fix _pyCommand::GetWord() for case of names with white spaces inside --- diff --git a/src/SMESH_I/SMESH_2smeshpy.cxx b/src/SMESH_I/SMESH_2smeshpy.cxx index 157e0f41c..aca8d4165 100644 --- a/src/SMESH_I/SMESH_2smeshpy.cxx +++ b/src/SMESH_I/SMESH_2smeshpy.cxx @@ -1841,9 +1841,18 @@ TCollection_AsciiString _pyCommand::GetWord( const TCollection_AsciiString & the return theEmptyString; // no word found // end end = beg + 1; - while ( end <= theString.Length() && isWord( theString.Value( end ), dotIsWord)) - ++end; - --end; + char begChar = theString.Value( beg ); + if ( begChar == '"' || begChar == '\'' ) { + // end is at the corresponding quoting mark + while ( end < theString.Length() && + ( theString.Value( end ) != begChar || theString.Value( end-1 ) == '\\')) + ++end; + } + else { + while ( end <= theString.Length() && isWord( theString.Value( end ), dotIsWord)) + ++end; + --end; + } } else { // search backward // end @@ -1852,9 +1861,18 @@ TCollection_AsciiString _pyCommand::GetWord( const TCollection_AsciiString & the if ( end == 0 ) return theEmptyString; // no word found beg = end - 1; - while ( beg > 0 && isWord( theString.Value( beg ), dotIsWord)) - --beg; - ++beg; + char endChar = theString.Value( end ); + if ( endChar == '"' || endChar == '\'' ) { + // beg is at the corresponding quoting mark + while ( beg > 1 && + ( theString.Value( beg ) != endChar || theString.Value( beg-1 ) == '\\')) + --beg; + } + else { + while ( beg > 0 && isWord( theString.Value( beg ), dotIsWord)) + --beg; + ++beg; + } } theStartPos = beg; //cout << theString << " ---- " << beg << " - " << end << endl;