/*======================================================================*/ void printMessageWithParameters(MsgKind msg, Parameter *messageParameters) { Parameter *savedParameters = newParameterArray(); copyParameterArray(savedParameters, globalParameters); copyParameterArray(globalParameters, messageParameters); interpret(msgs[msg].stms); copyParameterArray(globalParameters, savedParameters); freeParameterArray(savedParameters); }
/*======================================================================*/ void copyParameter(Parameter *to, Parameter *from) { Parameter *theCopyCandidates = to->candidates; *to = *from; if (lengthOfParameterArray(theCopyCandidates) < lengthOfParameterArray(from->candidates)) // TODO Should we free the from->candidates here to->candidates = allocateParameterArray(MAXENTITY); copyParameterArray(to->candidates, from->candidates); }
/*======================================================================*/ void setParameters(Parameter *newParameters) { if (globalParameters == NULL) globalParameters = allocateParameterArray(MAXENTITY); copyParameterArray(globalParameters, newParameters); }