Skip to content

Commit

Permalink
Added appendFile to System.
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@5484 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Otto Tronarp committed May 10, 2010
1 parent 1ae7676 commit bc03247
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 0 deletions.
15 changes: 15 additions & 0 deletions Compiler/Static.mo
Expand Up @@ -7639,6 +7639,21 @@ protected function elabCallInteractive "function: elabCallInteractive
case (cache,env,Absyn.CREF_IDENT(name = "checkExamplePackages"),{},{},impl,SOME(st))
then (cache,DAE.CALL(Absyn.IDENT("checkExamplePackages"),{},false,true,DAE.ET_STRING(),DAE.NO_INLINE),DAE.PROP(DAE.T_BOOL_DEFAULT,DAE.C_CONST()),SOME(st));

case (cache,env,Absyn.CREF_IDENT(name = "checkExamplePackages"),{Absyn.STRING(value = str)},{},impl,SOME(st))
then (cache,DAE.CALL(Absyn.IDENT("checkExamplePackages"),{DAE.SCONST(str)},false,true,DAE.ET_STRING(),DAE.NO_INLINE),DAE.PROP(DAE.T_BOOL_DEFAULT,DAE.C_CONST()),SOME(st));

case (cache,env,Absyn.CREF_IDENT(name = "checkExamplePackages"),{Absyn.CREF(componentRef = cr)},{},impl,SOME(st))
local Absyn.Path className;
equation
className = Absyn.crefToPath(cr);
then (cache,DAE.CALL(Absyn.IDENT("checkExamplePackages"),{DAE.CODE(Absyn.C_TYPENAME(className),DAE.ET_OTHER())},false,true,DAE.ET_STRING(),DAE.NO_INLINE),DAE.PROP(DAE.T_BOOL_DEFAULT,DAE.C_CONST()),SOME(st));

case (cache,env,Absyn.CREF_IDENT(name = "checkExamplePackages"),{Absyn.CREF(componentRef = cr), Absyn.STRING(value = str)},{},impl,SOME(st))
local Absyn.Path className;
equation
className = Absyn.crefToPath(cr);
then (cache,DAE.CALL(Absyn.IDENT("checkExamplePackages"),{DAE.CODE(Absyn.C_TYPENAME(className),DAE.ET_OTHER()), DAE.SCONST(str)},false,true,DAE.ET_STRING(),DAE.NO_INLINE),DAE.PROP(DAE.T_BOOL_DEFAULT,DAE.C_CONST()),SOME(st));

case (cache,env,Absyn.CREF_IDENT(name = "dumpXMLDAE"),{Absyn.CREF(componentRef = cr)},args,impl,SOME(st))
local Absyn.Path className; DAE.Exp storeInTemp,asInSimulationCode,addOriginalIncidenceMatrix,addSolvingInfo,addMathMLCode,dumpResiduals;
equation
Expand Down
7 changes: 7 additions & 0 deletions Compiler/System.mo
Expand Up @@ -265,6 +265,13 @@ public function writeFile
external "C" ;
end writeFile;

public function appendFile
input String inString1;
input String inString2;

external "C" ;
end appendFile;

public function readFile
input String inString;
output String outString;
Expand Down
26 changes: 26 additions & 0 deletions Compiler/runtime/systemimpl.c
Expand Up @@ -631,6 +631,32 @@ RML_BEGIN_LABEL(System__writeFile)
}
RML_END_LABEL

RML_BEGIN_LABEL(System__appendFile)
{
char* data = RML_STRINGDATA(rmlA1);
char* filename = RML_STRINGDATA(rmlA0);
FILE * file=NULL;
file = fopen(filename, "a");
if (file == NULL) {
char *c_tokens[1]={filename};
c_add_message(21, /* WRITING_FILE_ERROR */
"SCRIPTING",
"ERROR",
"Error appending to file %s.",
c_tokens,
1);
RML_TAILCALLK(rmlFC);
}
/* adrpo changed 2006-10-06
* fprintf(file,"%s",data);
*/
fwrite(RML_STRINGDATA(rmlA1), RML_HDRSTRLEN(RML_GETHDR(rmlA1)), 1, file);
fflush(file);
fclose(file);
RML_TAILCALLK(rmlSC);
}
RML_END_LABEL

RML_BEGIN_LABEL(System__readFile)
{
char* filename = RML_STRINGDATA(rmlA0);
Expand Down

0 comments on commit bc03247

Please sign in to comment.