From 1ad6ff03b3f2dab48e8e8908e2d6a654cf5046f0 Mon Sep 17 00:00:00 2001 From: Keenan Lang Date: Fri, 22 Aug 2014 11:50:24 -0500 Subject: [PATCH] Changed iocshLoadFile to iocshLoad and added iocshRun as the macro version of iocshCmd --- src/libCom/iocsh/iocsh.cpp | 27 +++++++++++++++++++++++---- src/libCom/iocsh/iocsh.h | 3 ++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/libCom/iocsh/iocsh.cpp b/src/libCom/iocsh/iocsh.cpp index a7054b33d..3d0941af3 100644 --- a/src/libCom/iocsh/iocsh.cpp +++ b/src/libCom/iocsh/iocsh.cpp @@ -847,11 +847,19 @@ iocshCmd (const char *cmd) } int epicsShareAPI -iocshLoadFile(const char *pathname, const char *macros) +iocshLoad(const char *pathname, const char *macros) { return iocshBody(pathname, NULL, macros); } +int epicsShareAPI +iocshRun(const char *cmd, const char *macros) +{ + if (cmd == NULL) + return 0; + return iocshBody(NULL, cmd, macros); +} + /* * Internal commands */ @@ -932,14 +940,24 @@ static void iocshCmdCallFunc(const iocshArgBuf *args) iocshCmd(args[0].sval); } -/* iocshLoadFile */ +/* iocshLoad */ static const iocshArg iocshLoadArg0 = { "pathname",iocshArgString}; static const iocshArg iocshLoadArg1 = { "macros", iocshArgString}; static const iocshArg *iocshLoadArgs[2] = {&iocshLoadArg0, &iocshLoadArg1}; -static const iocshFuncDef iocshLoadFuncDef = {"iocshLoadFile",2,iocshLoadArgs}; +static const iocshFuncDef iocshLoadFuncDef = {"iocshLoad",2,iocshLoadArgs}; static void iocshLoadCallFunc(const iocshArgBuf *args) { - iocshLoadFile(args[0].sval, args[1].sval); + iocshLoad(args[0].sval, args[1].sval); +} + +/* iocshRun */ +static const iocshArg iocshRunArg0 = { "command",iocshArgString}; +static const iocshArg iocshRunArg1 = { "macros", iocshArgString}; +static const iocshArg *iocshRunArgs[2] = {&iocshRunArg0, &iocshRunArg1}; +static const iocshFuncDef iocshRunFuncDef = {"iocshRun",2,iocshRunArgs}; +static void iocshRunCallFunc(const iocshArgBuf *args) +{ + iocshRun(args[0].sval, args[1].sval); } /* @@ -970,6 +988,7 @@ static void localRegister (void) iocshRegister(&helpFuncDef,helpCallFunc); iocshRegister(&iocshCmdFuncDef,iocshCmdCallFunc); iocshRegister(&iocshLoadFuncDef,iocshLoadCallFunc); + iocshRegister(&iocshRunFuncDef,iocshRunCallFunc); } } /* extern "C" */ diff --git a/src/libCom/iocsh/iocsh.h b/src/libCom/iocsh/iocsh.h index 3178eac46..b696ea604 100644 --- a/src/libCom/iocsh/iocsh.h +++ b/src/libCom/iocsh/iocsh.h @@ -70,7 +70,8 @@ epicsShareFunc void epicsShareAPI iocshFree(void); epicsShareFunc int epicsShareAPI iocsh(const char *pathname); epicsShareFunc int epicsShareAPI iocshCmd(const char *cmd); -epicsShareFunc int epicsShareAPI iocshLoadFile(const char *pathname, const char* macros); +epicsShareFunc int epicsShareAPI iocshLoad(const char *pathname, const char* macros); +epicsShareFunc int epicsShareAPI iocshRun(const char *cmd, const char* macros); /* 'weak' link to pdbbase */ epicsShareExtern struct dbBase **iocshPpdbbase;