aboutsummaryrefslogtreecommitdiff
path: root/jim.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-06-08 15:41:05 +1000
committerSteve Bennett <steveb@workware.net.au>2011-06-10 14:00:35 +1000
commitfc7a0e0f5fdd427bdbdb2d0669ef3a0c46d292d4 (patch)
treeca5f23ad57ca22cd71da3fd562c415ac88106ff1 /jim.c
parent1a5c1c4fe78fdcfa7d5c2fe441dfdbd7c174d2bc (diff)
downloadjimtcl-fc7a0e0f5fdd427bdbdb2d0669ef3a0c46d292d4.zip
jimtcl-fc7a0e0f5fdd427bdbdb2d0669ef3a0c46d292d4.tar.gz
jimtcl-fc7a0e0f5fdd427bdbdb2d0669ef3a0c46d292d4.tar.bz2
Allow [info complete] to determine the missing char
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim.c')
-rw-r--r--jim.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/jim.c b/jim.c
index 52e42d3..776b91b 100644
--- a/jim.c
+++ b/jim.c
@@ -13611,15 +13611,19 @@ static int Jim_InfoCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *arg
}
case INFO_COMPLETE:
- if (argc != 3) {
- Jim_WrongNumArgs(interp, 2, argv, "script");
+ if (argc != 3 && argc != 4) {
+ Jim_WrongNumArgs(interp, 2, argv, "script ?missing?");
return JIM_ERR;
}
else {
int len;
const char *s = Jim_GetString(argv[2], &len);
+ char missing = '\0';
- Jim_SetResultBool(interp, Jim_ScriptIsComplete(s, len, NULL));
+ Jim_SetResultBool(interp, Jim_ScriptIsComplete(s, len, &missing));
+ if (missing && argc == 4) {
+ Jim_SetVariable(interp, argv[3], Jim_NewStringObj(interp, &missing, 1));
+ }
}
break;