@@ -1148,7 +1148,7 @@ const char* mapToDymolaVars(const char* varname)
1148
1148
else if (varname [i ] == ']' )
1149
1149
level -- ;
1150
1150
1151
- if (level > 0 && varname [i ] == ',' )
1151
+ if (level > 0 && varname [i ] == ',' && varname [ i + 1 ] != ' ' )
1152
1152
newVarnameSize ++ ;
1153
1153
}
1154
1154
@@ -1161,23 +1161,22 @@ const char* mapToDymolaVars(const char* varname)
1161
1161
level -- ;
1162
1162
1163
1163
newVarname [i ] = varname [j ];
1164
- if (level > 0 && varname [j ] == ',' )
1164
+ if (level > 0 && varname [j ] == ',' && varname [ j + 1 ] != ' ' )
1165
1165
{
1166
1166
i ++ ;
1167
1167
newVarname [i ] = ' ' ;
1168
1168
}
1169
1169
}
1170
1170
newVarname [newVarnameSize ] = '\0' ;
1171
1171
1172
- if (!memcmp ((const void * )newVarname , (const void * )"der(" , 4 * sizeof (char )))
1172
+ while (!memcmp ((const void * )newVarname , (const void * )"der(" , 4 * sizeof (char )))
1173
1173
{
1174
1174
for (pos = newVarnameSize ; pos >=4 ; pos -- )
1175
- if (varname [pos ] == '.' )
1175
+ if (newVarname [pos ] == '.' )
1176
1176
break ;
1177
1177
1178
- strcpy (newVarname , varname );
1179
- memcpy ((void * )newVarname , (void * )(varname + 4 ), (pos - 3 )* sizeof (char ));
1180
- memcpy ((void * )(newVarname + pos - 3 ), (void * )(varname ), 4 * sizeof (char ));
1178
+ memcpy ((void * )newVarname , (const void * )(newVarname + 4 ), (pos - 3 )* sizeof (char ));
1179
+ memcpy ((void * )(newVarname + pos - 3 ), (const void * )"der(" , 4 * sizeof (char ));
1181
1180
}
1182
1181
1183
1182
return newVarname ;
0 commit comments