From 97cfab41f021b51b43653cc625a503f2093cac1d Mon Sep 17 00:00:00 2001 From: eap Date: Mon, 16 Mar 2009 07:56:53 +0000 Subject: [PATCH] 0020217: EDF SMESH: Dump file with mesh and group on geom is wrong fix _pyCommand::GetWord() for case of names with white spaces inside --- src/SMESH_I/SMESH_2smeshpy.cxx | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) 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;