aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2024-04-02 08:02:21 +1000
committerSteve Bennett <steveb@workware.net.au>2024-04-02 08:20:45 +1000
commit47682f265f6ae84e3c661b565af2b8a517b0e121 (patch)
tree7ca3f0072c3d80289e7bc19c4b9be62f005d3f59
parentd009bf2f46f4445f6bb6a5e403deb1a0d75c8d70 (diff)
downloadjimtcl-47682f265f6ae84e3c661b565af2b8a517b0e121.zip
jimtcl-47682f265f6ae84e3c661b565af2b8a517b0e121.tar.gz
jimtcl-47682f265f6ae84e3c661b565af2b8a517b0e121.tar.bz2
expr: explicit error on empty expression
Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r--jim.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/jim.c b/jim.c
index f364c00..d87a9b5 100644
--- a/jim.c
+++ b/jim.c
@@ -9783,10 +9783,17 @@ static int SetExprFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
}
#endif
- if (JimParseCheckMissing(interp, parser.missing.ch) == JIM_ERR) {
+ if (tokenlist.count <= 1) {
+ Jim_SetResultString(interp, "empty expression", -1);
+ rc = JIM_ERR;
+ }
+ else {
+ rc = JimParseCheckMissing(interp, parser.missing.ch);
+ }
+ if (rc != JIM_OK) {
ScriptTokenListFree(&tokenlist);
Jim_DecrRefCount(interp, fileNameObj);
- return JIM_ERR;
+ return rc;
}
/* Now create the expression bytecode from the tokenlist */