diff --git a/modules/libcom/src/iocsh/iocsh.cpp b/modules/libcom/src/iocsh/iocsh.cpp index 57e8be671..2e64e8b05 100644 --- a/modules/libcom/src/iocsh/iocsh.cpp +++ b/modules/libcom/src/iocsh/iocsh.cpp @@ -511,6 +511,17 @@ typedef struct { bool errored; } Scope; +int iocshSetError(int err) +{ + Scope *scope; + if (err && iocshScopeId) { + scope = (Scope *) epicsThreadPrivateGet(iocshScopeId); + + if(scope) scope->errored = 1; + } + return err; +} + /* * The body of the command interpreter */ diff --git a/modules/libcom/src/iocsh/iocsh.h b/modules/libcom/src/iocsh/iocsh.h index 84b38f224..2e8dc225e 100644 --- a/modules/libcom/src/iocsh/iocsh.h +++ b/modules/libcom/src/iocsh/iocsh.h @@ -89,6 +89,8 @@ epicsShareFunc int epicsShareAPI iocshCmd(const char *cmd); epicsShareFunc int epicsShareAPI iocshLoad(const char *pathname, const char* macros); epicsShareFunc int epicsShareAPI iocshRun(const char *cmd, const char* macros); +epicsShareFunc int iocshSetError(int err); + /* Makes macros that shadow environment variables work correctly with epicsEnvSet */ epicsShareFunc void epicsShareAPI iocshEnvClear(const char *name);