diff options
-rw-r--r-- | jim.c | 7 | ||||
-rw-r--r-- | jim.h | 7 | ||||
-rwxr-xr-x | make-bootstrap-jim | 5 | ||||
-rw-r--r-- | make-c-ext.tcl | 2 |
4 files changed, 11 insertions, 10 deletions
@@ -9886,7 +9886,7 @@ int Jim_EvalObj(Jim_Interp *interp, Jim_Obj *scriptObjPtr) /* If the object is of type "list", we can call * a specialized version of Jim_EvalObj() */ if (Jim_IsList(scriptObjPtr)) { - return JimEvalObjList(interp, scriptObjPtr, NULL, 0); + return JimEvalObjList(interp, scriptObjPtr, interp->emptyObj, 1); } Jim_IncrRefCount(scriptObjPtr); /* Make sure it's shared. */ @@ -10306,7 +10306,7 @@ badargset: return retcode; } -int Jim_Eval_Named(Jim_Interp *interp, const char *script, const char *filename, int lineno) +int Jim_EvalSource(Jim_Interp *interp, const char *filename, int lineno, const char *script) { int retval; Jim_Obj *scriptObjPtr; @@ -10314,7 +10314,6 @@ int Jim_Eval_Named(Jim_Interp *interp, const char *script, const char *filename, scriptObjPtr = Jim_NewStringObj(interp, script, -1); Jim_IncrRefCount(scriptObjPtr); - if (filename) { Jim_Obj *prevScriptObj; @@ -10336,7 +10335,7 @@ int Jim_Eval_Named(Jim_Interp *interp, const char *script, const char *filename, int Jim_Eval(Jim_Interp *interp, const char *script) { - return Jim_Eval_Named(interp, script, NULL, 0); + return Jim_EvalObj(interp, Jim_NewStringObj(interp, script, -1)); } /* Execute script in the scope of the global level */ @@ -636,8 +636,11 @@ JIM_EXPORT void Jim_SetEnviron(char **env); /* evaluation */ JIM_EXPORT int Jim_Eval(Jim_Interp *interp, const char *script); /* in C code, you can do this and get better error messages */ -/* Jim_Eval_Named( interp, "some tcl commands", __FILE__, __LINE__ ); */ -JIM_EXPORT int Jim_Eval_Named(Jim_Interp *interp, const char *script,const char *filename, int lineno); +/* Jim_EvalSource( interp, __FILE__, __LINE__ , "some tcl commands"); */ +JIM_EXPORT int Jim_EvalSource(Jim_Interp *interp, const char *filename, int lineno, const char *script); +/* Backwards compatibility */ +#define Jim_Eval_Named(I, S, F, L) Jim_EvalSource((I), (F), (L), (S)) + JIM_EXPORT int Jim_EvalGlobal(Jim_Interp *interp, const char *script); JIM_EXPORT int Jim_EvalFile(Jim_Interp *interp, const char *filename); JIM_EXPORT int Jim_EvalFileGlobal(Jim_Interp *interp, const char *filename); diff --git a/make-bootstrap-jim b/make-bootstrap-jim index 38ce22e..6dd1a94 100755 --- a/make-bootstrap-jim +++ b/make-bootstrap-jim @@ -14,14 +14,13 @@ int Jim_${basename}Init(Jim_Interp *interp) if (Jim_PackageProvide(interp, "$basename", "1.0", JIM_ERRMSG)) return JIM_ERR; - return Jim_Eval_Named(interp, + return Jim_EvalSource(interp, \"$source\", 1, EOF # Note: Keep newlines so that line numbers match in error messages sed -e 's/^[ ]*#.*//' -e 's@\\@\\\\@g' -e 's@"@\\"@g' -e 's@^\(.*\)$@"\1\\n"@' $source -#sed -e 's@^\(.*\)$@"\1\\n"@' $source -echo ",\"$source\", 1);" +echo ");" echo "}" } diff --git a/make-c-ext.tcl b/make-c-ext.tcl index 7e506ee..fd1a056 100644 --- a/make-c-ext.tcl +++ b/make-c-ext.tcl @@ -32,7 +32,7 @@ set pkgname [file rootname $basename] lappend lines "int Jim_${pkgname}Init(Jim_Interp *interp)" lappend lines "\{" lappend lines "\tif (Jim_PackageProvide(interp, \"$pkgname\", \"1.0\", JIM_ERRMSG)) return JIM_ERR;" -lappend lines "\treturn Jim_Eval_Named(interp, [join $sourcelines \n], \"$basename\", 1);" +lappend lines "\treturn Jim_EvalSource(interp, \"$basename\", 1, [join $sourcelines \n]);" lappend lines "\}" puts [join $lines \n] |