diff --git a/require.h b/require.h index 59d89b001367d6b0ab8d165d2acd755511b81ee9..318deedb327cfa9fad1a4f91b016cf4701de26f2 100644 --- a/require.h +++ b/require.h @@ -15,6 +15,7 @@ const char* getLibVersion(const char* libname); const char* getLibLocation(const char* libname); int libversionShow(const char* outfile); int runScript(const char* filename, const char* args); +int loadIocsh(const char* filename, const char* args); int putenvprintf(const char* format, ...) __attribute__((__format__(__printf__,1,2))); void pathAdd(const char* varname, const char* dirname); diff --git a/runScript.c b/runScript.c index daf79fa343ed257ac9be183d4447db286bf374a7..de736d511f31f02f3e0f58e6e4e67b12008b5a59 100644 --- a/runScript.c +++ b/runScript.c @@ -52,6 +52,12 @@ epicsShareFunc int epicsShareAPI iocshCmd(const char *cmd); int runScriptDebug=0; +int loadIocsh(const char* filename, const char* args) +{ + return runScript(filename, args); +} + + int runScript(const char* filename, const char* args) { MAC_HANDLE *mac = NULL; @@ -346,6 +352,17 @@ int afterInit(char* cmd, char* a1, char* a2, char* a3, char* a4, char* a5, char* epicsExportAddress(int, runScriptDebug); epicsExportAddress(int, exprDebug); +static const iocshFuncDef loadIocshDef = { + "loadIocsh", 2, (const iocshArg *[]) { + &(iocshArg) { "filename", iocshArgString }, + &(iocshArg) { "substitutions", iocshArgString }, +}}; +static void loadIocshFunc(const iocshArgBuf *args) +{ + loadIocsh(args[0].sval, args[1].sval); +} + + static const iocshFuncDef runScriptDef = { "runScript", 2, (const iocshArg *[]) { &(iocshArg) { "filename", iocshArgString }, @@ -384,6 +401,7 @@ static void runScriptRegister(void) if (firstTime) { firstTime = 0; iocshRegister (&runScriptDef, runScriptFunc); + iocshRegister (&loadIocshDef, loadIocshFunc); iocshRegister (&afterInitDef, afterInitFunc); } }