diff options
author | Alexander Shpilkin <ashpilkin@gmail.com> | 2011-08-29 20:33:05 +0400 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-08-30 12:28:31 +1000 |
commit | 4f1aac96264a55165a04396f37b4302111602b5b (patch) | |
tree | b17e4158bf5885b216ed90a308723af74c1825f4 | |
parent | a213c750258a7d2a362d39aae6b8654723c58ea9 (diff) | |
download | jimtcl-4f1aac96264a55165a04396f37b4302111602b5b.zip jimtcl-4f1aac96264a55165a04396f37b4302111602b5b.tar.gz jimtcl-4f1aac96264a55165a04396f37b4302111602b5b.tar.bz2 |
Change Jim_EvalObjPrefix to accept arbitrary objects
Jim_EvalObjPrefix now accepts an arbitrary Jim_Obj as a prefix,
with Jim_EvalPrefix being equivalent to the older version.
-rw-r--r-- | jim-file.c | 4 | ||||
-rw-r--r-- | jim.c | 8 | ||||
-rw-r--r-- | jim.h | 3 |
3 files changed, 8 insertions, 7 deletions
@@ -372,7 +372,7 @@ static int file_cmd_delete(Jim_Interp *interp, int argc, Jim_Obj *const *argv) if (unlink(path) == -1 && errno != ENOENT) { if (rmdir(path) == -1) { /* Maybe try using the script helper */ - if (!force || Jim_EvalObjPrefix(interp, "file delete force", 1, argv) != JIM_OK) { + if (!force || Jim_EvalPrefix(interp, "file delete force", 1, argv) != JIM_OK) { Jim_SetResultFormatted(interp, "couldn't delete file \"%s\": %s", path, strerror(errno)); return JIM_ERR; @@ -584,7 +584,7 @@ static int file_cmd_mtime(Jim_Interp *interp, int argc, Jim_Obj *const *argv) static int file_cmd_copy(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { - return Jim_EvalObjPrefix(interp, "file copy", argc, argv); + return Jim_EvalPrefix(interp, "file copy", argc, argv); } static int file_cmd_size(Jim_Interp *interp, int argc, Jim_Obj *const *argv) @@ -9631,13 +9631,13 @@ int Jim_EvalObjVector(Jim_Interp *interp, int objc, Jim_Obj *const *objv) /** * Invokes 'prefix' as a command with the objv array as arguments. */ -int Jim_EvalObjPrefix(Jim_Interp *interp, const char *prefix, int objc, Jim_Obj *const *objv) +int Jim_EvalObjPrefix(Jim_Interp *interp, Jim_Obj *prefix, int objc, Jim_Obj *const *objv) { int i; int ret; Jim_Obj **nargv = Jim_Alloc((objc + 1) * sizeof(*nargv)); - nargv[0] = Jim_NewStringObj(interp, prefix, -1); + nargv[0] = prefix; for (i = 0; i < objc; i++) { nargv[i + 1] = objv[i]; } @@ -13375,7 +13375,7 @@ static int Jim_DictCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *arg return JIM_ERR; } else { - return Jim_EvalObjPrefix(interp, "dict merge", argc - 2, argv + 2); + return Jim_EvalPrefix(interp, "dict merge", argc - 2, argv + 2); } case OPT_WITH: @@ -13387,7 +13387,7 @@ static int Jim_DictCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *arg return JIM_ERR; } else { - return Jim_EvalObjPrefix(interp, "dict with", argc - 2, argv + 2); + return Jim_EvalPrefix(interp, "dict with", argc - 2, argv + 2); } case OPT_CREATE: @@ -647,8 +647,9 @@ JIM_EXPORT int Jim_EvalFileGlobal(Jim_Interp *interp, const char *filename); JIM_EXPORT int Jim_EvalObj (Jim_Interp *interp, Jim_Obj *scriptObjPtr); JIM_EXPORT int Jim_EvalObjVector (Jim_Interp *interp, int objc, Jim_Obj *const *objv); -JIM_EXPORT int Jim_EvalObjPrefix(Jim_Interp *interp, const char *prefix, +JIM_EXPORT int Jim_EvalObjPrefix(Jim_Interp *interp, Jim_Obj *prefix, int objc, Jim_Obj *const *objv); +#define Jim_EvalPrefix(i, p, oc, ov) Jim_EvalObjPrefix((i), Jim_NewStringObj((i), (p), -1), (oc), (ov)) JIM_EXPORT int Jim_SubstObj (Jim_Interp *interp, Jim_Obj *substObjPtr, Jim_Obj **resObjPtrPtr, int flags); |