mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-22 19:44:21 +01:00
46 lines
1.3 KiB
Diff
46 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 = "";
|