0020217: EDF SMESH: Dump file with mesh and group on geom is wrong

fix _pyCommand::GetWord() for case of names with white spaces inside
This commit is contained in:
eap 2009-03-16 07:50:59 +00:00
parent a84fe0415c
commit 38d5458b4d

View File

@ -2107,10 +2107,19 @@ TCollection_AsciiString _pyCommand::GetWord( const TCollection_AsciiString & the
return theEmptyString; // no word found return theEmptyString; // no word found
// end // end
end = beg + 1; end = beg + 1;
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)) while ( end <= theString.Length() && isWord( theString.Value( end ), dotIsWord))
++end; ++end;
--end; --end;
} }
}
else { // search backward else { // search backward
// end // end
while ( end > 0 && !isWord( theString.Value( end ), dotIsWord)) while ( end > 0 && !isWord( theString.Value( end ), dotIsWord))
@ -2118,10 +2127,19 @@ TCollection_AsciiString _pyCommand::GetWord( const TCollection_AsciiString & the
if ( end == 0 ) if ( end == 0 )
return theEmptyString; // no word found return theEmptyString; // no word found
beg = end - 1; beg = end - 1;
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)) while ( beg > 0 && isWord( theString.Value( beg ), dotIsWord))
--beg; --beg;
++beg; ++beg;
} }
}
theStartPos = beg; theStartPos = beg;
//cout << theString << " ---- " << beg << " - " << end << endl; //cout << theString << " ---- " << beg << " - " << end << endl;
return theString.SubString( beg, end ); return theString.SubString( beg, end );