diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-10-11 10:30:22 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-10-15 11:02:57 +1000 |
commit | 7f0bcc46a3c9fcfa42f01898330858181838e41f (patch) | |
tree | 00eaaf240f252c57846b8812ea0c483bee10deca /jim.c | |
parent | 3cfb6f5e312305d7641340917a251606efdf4611 (diff) | |
download | jimtcl-7f0bcc46a3c9fcfa42f01898330858181838e41f.zip jimtcl-7f0bcc46a3c9fcfa42f01898330858181838e41f.tar.gz jimtcl-7f0bcc46a3c9fcfa42f01898330858181838e41f.tar.bz2 |
Remove dependence of jim core on stderr
Remove Jim_PrintErrorMessage() and create Jim_MakeErrorMessage() instead.
Move errorInfo to stdlib since it is now required.
Also move lassign from tclcompat to stdlib as a core command.
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim.c')
-rw-r--r-- | jim.c | 34 |
1 files changed, 5 insertions, 29 deletions
@@ -13437,38 +13437,14 @@ void Jim_RegisterCoreCommands(Jim_Interp *interp) /* ----------------------------------------------------------------------------- * Interactive prompt * ---------------------------------------------------------------------------*/ -void Jim_PrintErrorMessage(Jim_Interp *interp) +void Jim_MakeErrorMessage(Jim_Interp *interp) { - int len, i; + Jim_Obj *argv[2]; - if (*interp->errorFileName) { - fprintf(stderr, "%s:%d: Runtime Error: ", interp->errorFileName, interp->errorLine); - } - fprintf(stderr, "%s" JIM_NL, Jim_GetString(interp->result, NULL)); - len = Jim_ListLength(interp, interp->stackTrace); - for (i = len - 3; i >= 0; i -= 3) { - Jim_Obj *objPtr = 0; - const char *proc, *file, *line; + argv[0] = Jim_NewStringObj(interp, "errorInfo", -1); + argv[1] = interp->result; - Jim_ListIndex(interp, interp->stackTrace, i, &objPtr, JIM_NONE); - proc = Jim_GetString(objPtr, NULL); - Jim_ListIndex(interp, interp->stackTrace, i + 1, &objPtr, JIM_NONE); - file = Jim_GetString(objPtr, NULL); - Jim_ListIndex(interp, interp->stackTrace, i + 2, &objPtr, JIM_NONE); - line = Jim_GetString(objPtr, NULL); - if (*proc) { - fprintf(stderr, "in procedure '%s' ", proc); - if (*file) { - fprintf(stderr, "called "); - } - } - if (*file) { - fprintf(stderr, "at file \"%s\", line %s", file, line); - } - if (*file || *proc) { - fprintf(stderr, JIM_NL); - } - } + Jim_EvalObjVector(interp, 2, argv); } static void JimSetFailedEnumResult(Jim_Interp *interp, const char *arg, const char *badtype, |