Skip to content

Commit fdedaa2

Browse files
committed
- fix for mapToDymolaVars
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@11325 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 666585e commit fdedaa2

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

SimulationRuntime/c/math-support/initialization.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1148,7 +1148,7 @@ const char* mapToDymolaVars(const char* varname)
11481148
else if(varname[i] == ']')
11491149
level--;
11501150

1151-
if(level > 0 && varname[i] == ',')
1151+
if(level > 0 && varname[i] == ',' && varname[i+1] != ' ')
11521152
newVarnameSize++;
11531153
}
11541154

@@ -1161,23 +1161,22 @@ const char* mapToDymolaVars(const char* varname)
11611161
level--;
11621162

11631163
newVarname[i] = varname[j];
1164-
if(level > 0 && varname[j] == ',')
1164+
if(level > 0 && varname[j] == ',' && varname[j+1] != ' ')
11651165
{
11661166
i++;
11671167
newVarname[i] = ' ';
11681168
}
11691169
}
11701170
newVarname[newVarnameSize] = '\0';
11711171

1172-
if(!memcmp((const void*)newVarname, (const void*)"der(", 4*sizeof(char)))
1172+
while(!memcmp((const void*)newVarname, (const void*)"der(", 4*sizeof(char)))
11731173
{
11741174
for(pos=newVarnameSize; pos>=4; pos--)
1175-
if(varname[pos] == '.')
1175+
if(newVarname[pos] == '.')
11761176
break;
11771177

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));
11811180
}
11821181

11831182
return newVarname;

0 commit comments

Comments
 (0)