summaryrefslogtreecommitdiffstats
path: root/generic/tclIOUtil.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2017-11-09 15:56:04 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2017-11-09 15:56:04 (GMT)
commitb7e5592df1f6b8d92935251cb1616e10b656ac07 (patch)
treeef789fbc1392b7bd7609fa81b92986d2241be9d7 /generic/tclIOUtil.c
parenta037934e2165dc52888a2daa656c9e5d5ddc980e (diff)
parent78374f18a4199081db4462452b16c3e4193edc92 (diff)
downloadtcl-b7e5592df1f6b8d92935251cb1616e10b656ac07.zip
tcl-b7e5592df1f6b8d92935251cb1616e10b656ac07.tar.gz
tcl-b7e5592df1f6b8d92935251cb1616e10b656ac07.tar.bz2
Merge core-8-branch. Backout the Tcl_EvalFile changes.
Diffstat (limited to 'generic/tclIOUtil.c')
-rw-r--r--generic/tclIOUtil.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/generic/tclIOUtil.c b/generic/tclIOUtil.c
index 39a9474..2c389c6 100644
--- a/generic/tclIOUtil.c
+++ b/generic/tclIOUtil.c
@@ -412,18 +412,21 @@ Tcl_GetCwd(
return Tcl_DStringValue(cwdPtr);
}
-#if !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 9
/* Obsolete */
-#undef Tcl_EvalFile
int
Tcl_EvalFile(
Tcl_Interp *interp, /* Interpreter in which to process file. */
const char *fileName) /* Name of file to process. Tilde-substitution
* will be performed on this name. */
{
- return Tcl_FSEvalFileEx(interp, Tcl_NewStringObj(fileName, -1), NULL);
+ int ret;
+ Tcl_Obj *pathPtr = Tcl_NewStringObj(fileName,-1);
+
+ Tcl_IncrRefCount(pathPtr);
+ ret = Tcl_FSEvalFile(interp, pathPtr);
+ Tcl_DecrRefCount(pathPtr);
+ return ret;
}
-#endif
/*
* Now move on to the basic filesystem implementation.
@@ -1737,11 +1740,8 @@ Tcl_FSEvalFileEx(
Tcl_Channel chan;
Tcl_Obj *objPtr;
- Tcl_IncrRefCount(pathPtr);
- objPtr = Tcl_NewObj();
- Tcl_IncrRefCount(objPtr);
if (Tcl_FSGetNormalizedPath(interp, pathPtr) == NULL) {
- goto end;
+ return result;
}
if (Tcl_FSStat(pathPtr, &statBuf) == -1) {
@@ -1756,7 +1756,7 @@ Tcl_FSEvalFileEx(
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
"couldn't read file \"%s\": %s",
Tcl_GetString(pathPtr), Tcl_PosixError(interp)));
- goto end;
+ return result;
}
/*
@@ -1775,10 +1775,13 @@ Tcl_FSEvalFileEx(
if (Tcl_SetChannelOption(interp, chan, "-encoding", encodingName)
!= TCL_OK) {
Tcl_Close(interp,chan);
- goto end;
+ return result;
}
}
+ objPtr = Tcl_NewObj();
+ Tcl_IncrRefCount(objPtr);
+
/*
* Try to read first character of stream, so we can check for utf-8 BOM to
* be handled especially.
@@ -1854,7 +1857,6 @@ Tcl_FSEvalFileEx(
end:
Tcl_DecrRefCount(objPtr);
- Tcl_DecrRefCount(pathPtr);
return result;
}