diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-11-09 15:56:04 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-11-09 15:56:04 (GMT) |
| commit | b7e5592df1f6b8d92935251cb1616e10b656ac07 (patch) | |
| tree | ef789fbc1392b7bd7609fa81b92986d2241be9d7 /generic/tclIOUtil.c | |
| parent | a037934e2165dc52888a2daa656c9e5d5ddc980e (diff) | |
| parent | 78374f18a4199081db4462452b16c3e4193edc92 (diff) | |
| download | tcl-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.c | 24 |
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; } |
