diff options
author | B. Watson <yalhcru@gmail.com> | 2014-02-05 08:54:02 +0700 |
---|---|---|
committer | Erik Hanson <erik@slackbuilds.org> | 2014-02-08 11:10:10 -0600 |
commit | f05385edeef1b12adb2f9033e1fbddbada1c6caa (patch) | |
tree | 1327ecbe03d11e29358dd23fd35e90f8f48eba3d /network/cicb/tcl_continue_error.diff | |
parent | b9fe91a6a6ca4c16369b0867db2e65f51ab39984 (diff) | |
download | slackbuilds-f05385edeef1b12adb2f9033e1fbddbada1c6caa.tar.gz |
network/cicb: Added (ICB client).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'network/cicb/tcl_continue_error.diff')
-rw-r--r-- | network/cicb/tcl_continue_error.diff | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/network/cicb/tcl_continue_error.diff b/network/cicb/tcl_continue_error.diff new file mode 100644 index 0000000000..dcba1b865c --- /dev/null +++ b/network/cicb/tcl_continue_error.diff @@ -0,0 +1,45 @@ +diff -wNaur -xCVS cicb-5.1.1b3/icb/parse.c cicb/icb/parse.c +--- cicb-5.1.1b3/icb/parse.c 2009-03-23 02:51:53.000000000 -0400 ++++ cicb/icb/parse.c 2013-07-05 02:16:27.000000000 -0400 +@@ -1,4 +1,4 @@ +-/* $Id: parse.c,v 1.20 2009/03/23 06:51:53 hoche Exp $ */ ++/* $Id: parse.c,v 1.21 2013/07/05 06:16:27 hoche Exp $ */ + + /* parse a line from the user */ + +@@ -8,6 +8,9 @@ + + #define ARRAY_SIZE(x) (sizeof (x) / sizeof (x[0])) + ++#define TCL_CONTINUE_ERROR_MSG "invoked \"continue\" outside of a loop" ++#define TCL_IGNORE 666 ++ + + /* This is similar to Tcl_VarEval, but it treats each string as a separate + list element, rather than concat-ing the strings together and then +@@ -76,6 +79,14 @@ + if (status == TCL_CONTINUE) { + send_command (cmd, args); + status = TCL_OK; ++ } else if (status == TCL_ERROR) { ++ ++ /* handle the dreaded "invoked continue" message */ ++ char *errmsg = (char*)Tcl_GetStringResult (interp); ++ if (strcmp(errmsg, TCL_CONTINUE_ERROR_MSG) == 0) { ++ send_command (cmd, args); ++ status = TCL_IGNORE; ++ } + } + + return status; +@@ -122,7 +133,9 @@ + putl (result, PL_SL); + } + error_mode = 0; +- ++ } else if (status == TCL_IGNORE) { ++ /* do nothing */ ++ error_mode = 0; + } else { + /* Report an error. */ + char* errmsg = ""; |