From 068ec9eed726f5f2e0938a3948b64f982b6ad91b Mon Sep 17 00:00:00 2001
From: Jeong Han Lee <jeonghan.lee@gmail.com>
Date: Tue, 18 Sep 2018 23:09:34 +0200
Subject: [PATCH] add loadIocsh func

---
 require.h   |  1 +
 runScript.c | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/require.h b/require.h
index 59d89b00..318deedb 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 daf79fa3..de736d51 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);
     }
 }
-- 
GitLab