aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jim.c7
-rw-r--r--jim.h7
-rwxr-xr-xmake-bootstrap-jim5
-rw-r--r--make-c-ext.tcl2
4 files changed, 11 insertions, 10 deletions
diff --git a/jim.c b/jim.c
index c50319a..8b17093 100644
--- a/jim.c
+++ b/jim.c
@@ -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 */
diff --git a/jim.h b/jim.h
index 37ed67f..a6138b5 100644
--- a/jim.h
+++ b/jim.h
@@ -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]