mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-28 02:10:35 +05:00
To correct parsing of commands like object.command(obj, 'str=value'),
when '=' character takes place between '' or "" symbols.
This commit is contained in:
parent
179aef89ac
commit
57efa381ef
@ -1712,8 +1712,22 @@ const TCollection_AsciiString & _pyCommand::GetObject()
|
||||
{
|
||||
// beginning
|
||||
int begPos = GetBegPos( RESULT_IND ) + myRes.Length();
|
||||
if ( begPos < 1 )
|
||||
if ( begPos < 1 ) {
|
||||
begPos = myString.Location( "=", 1, Length() ) + 1;
|
||||
// is '=' in the string argument (for example, name) or not
|
||||
int nb1 = 0; // number of ' character at the left of =
|
||||
int nb2 = 0; // number of " character at the left of =
|
||||
for ( int i = 1; i < begPos-1; i++ ) {
|
||||
if ( IsEqual(myString.Value( i ), "'" ) )
|
||||
nb1 += 1;
|
||||
else if ( IsEqual( myString.Value( i ), '"' ) )
|
||||
nb2 += 1;
|
||||
}
|
||||
// if number of ' or " is not divisible by 2,
|
||||
// then get an object at the start of the command
|
||||
if ( fmod( nb1, 2 ) != 0 || fmod( nb2, 2 ) != 0 )
|
||||
begPos = 1;
|
||||
}
|
||||
// store
|
||||
myObj = GetWord( myString, begPos, true );
|
||||
SetBegPos( OBJECT_IND, begPos );
|
||||
|
Loading…
Reference in New Issue
Block a user