summaryrefslogtreecommitdiffstats
path: root/unix/tclUnixTest.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2004-12-01 23:18:49 (GMT)
committerdgp <dgp@users.sourceforge.net>2004-12-01 23:18:49 (GMT)
commit9eaeb8308ff9d69376a16893e7dc39f294c44198 (patch)
tree24c98fbde098f2d1bc296137a0bc6efaa00c323f /unix/tclUnixTest.c
parent5832d6e914aef53f269531d6ad9b8d2a14036b6c (diff)
downloadtcl-9eaeb8308ff9d69376a16893e7dc39f294c44198.zip
tcl-9eaeb8308ff9d69376a16893e7dc39f294c44198.tar.gz
tcl-9eaeb8308ff9d69376a16893e7dc39f294c44198.tar.bz2
* generic/tclUtil.c: Updated Tcl_GetNameOfExecutable() to
* generic/tclEncoding.c: make use of a ProcessGlobalValue for * generic/tclEvent.c: storing the executable name. Added internal routines Tcl(Get|Set)ObjNameOfExecutable() to access that storage in Tcl_Obj, rather than string format. * unix/tclUnixFile.c: Rewrote TclpFindExecutable() to use * win/tclWinFile.c: TclSetObjNameOfExecutable to store the executable name it computes. * generic/tclInt.h: Added internal stub entries for * generic/tclInt.decls: TclpFindExecutable and Tcl(Get|Set)ObjNameOfExecutable. * generic/tclIntDecls.h: make genstubs * generic/tclStubInit.c: * generic/tclCmdIL.c: Retrieve executable name in Tcl_Obj form * win/tclWinPipe.c: instead of string form. * unix/tclUnixTest.c: Update [testfindexecutable] command to use new internal interfaces.
Diffstat (limited to 'unix/tclUnixTest.c')
-rw-r--r--unix/tclUnixTest.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/unix/tclUnixTest.c b/unix/tclUnixTest.c
index 9b5c717..8cdf7c7 100644
--- a/unix/tclUnixTest.c
+++ b/unix/tclUnixTest.c
@@ -9,7 +9,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclUnixTest.c,v 1.19 2004/11/30 19:34:51 dgp Exp $
+ * RCS: @(#) $Id: tclUnixTest.c,v 1.20 2004/12/01 23:18:55 dgp Exp $
*/
#include "tclInt.h"
@@ -426,7 +426,7 @@ TestfilewaitCmd(clientData, interp, argc, argv)
* TestfindexecutableCmd --
*
* This procedure implements the "testfindexecutable" command. It is
- * used to test Tcl_FindExecutable.
+ * used to test TclpFindExecutable.
*
* Results:
* A standard Tcl result.
@@ -444,8 +444,7 @@ TestfindexecutableCmd(clientData, interp, argc, argv)
int argc; /* Number of arguments. */
CONST char **argv; /* Argument strings. */
{
- char *oldNativeName;
- int oldDone;
+ Tcl_Obj *saveName;
if (argc != 2) {
Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0],
@@ -453,22 +452,14 @@ TestfindexecutableCmd(clientData, interp, argc, argv)
return TCL_ERROR;
}
- oldNativeName = tclNativeExecutableName;
- oldDone = tclFindExecutableSearchDone;
+ saveName = TclGetObjNameOfExecutable();
+ Tcl_IncrRefCount(saveName);
- tclNativeExecutableName = NULL;
- tclFindExecutableSearchDone = 0;
-
- Tcl_GetNameOfExecutable();
- Tcl_FindExecutable(argv[1]);
- Tcl_SetResult(interp, (char *) Tcl_GetNameOfExecutable(), TCL_VOLATILE);
- if (tclNativeExecutableName != NULL) {
- ckfree(tclNativeExecutableName);
- }
-
- tclNativeExecutableName = oldNativeName;
- tclFindExecutableSearchDone = oldDone;
+ TclpFindExecutable(argv[1]);
+ Tcl_SetObjResult(interp, TclGetObjNameOfExecutable());
+ TclSetObjNameOfExecutable(saveName, NULL);
+ Tcl_DecrRefCount(saveName);
return TCL_OK;
}