mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-04 20:29:09 +01:00
f05385edee
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
45 lines
1.3 KiB
Diff
45 lines
1.3 KiB
Diff
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 = "";
|