diff options
| author | dgp@users.sourceforge.net <dgp> | 2001-07-02 20:57:02 (GMT) |
|---|---|---|
| committer | dgp@users.sourceforge.net <dgp> | 2001-07-02 20:57:02 (GMT) |
| commit | 292f29f65f9cf8fe5bc13fbadb6e99db4b2bd444 (patch) | |
| tree | 2fb7932d075bd1e5436fbf6b6f60277e769d7e94 /unix/tclUnixInit.c | |
| parent | 6b4651bfa3074003c377fccc769e2745794c0406 (diff) | |
| download | tcl-292f29f65f9cf8fe5bc13fbadb6e99db4b2bd444.zip tcl-292f29f65f9cf8fe5bc13fbadb6e99db4b2bd444.tar.gz tcl-292f29f65f9cf8fe5bc13fbadb6e99db4b2bd444.tar.bz2 | |
* tests/unixInit.test (unixInit-2.8): Corrected test for all
absolute pathnames in library path when executable is installed
near root directory to use correct development directory layout.
[Bug 438014]
* tests/unixInit.test (unixInit-2.9):
* unix/tclUnixInit.c (TclpInitLibraryPath):
* win/tclWinInit.c (TclpInitLibraryPath): Corrected buggy
construction of search path entries relative to executable.
Added test for bad construction. [Bug 438014]
Diffstat (limited to 'unix/tclUnixInit.c')
| -rw-r--r-- | unix/tclUnixInit.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c index aaaa811..3fd7d1f 100644 --- a/unix/tclUnixInit.c +++ b/unix/tclUnixInit.c @@ -7,7 +7,7 @@ * Copyright (c) 1999 by Scriptics Corporation. * All rights reserved. * - * RCS: @(#) $Id: tclUnixInit.c,v 1.21 2001/01/04 21:30:49 dgp Exp $ + * RCS: @(#) $Id: tclUnixInit.c,v 1.22 2001/07/02 20:57:02 dgp Exp $ */ #include "tclInt.h" @@ -290,43 +290,55 @@ CONST char *path; /* Path to the executable in native if (path != NULL) { Tcl_SplitPath(path, &pathc, &pathv); if (pathc > 2) { + str = pathv[pathc - 2]; pathv[pathc - 2] = installLib; path = Tcl_JoinPath(pathc - 1, pathv, &ds); + pathv[pathc - 2] = str; objPtr = Tcl_NewStringObj(path, Tcl_DStringLength(&ds)); Tcl_ListObjAppendElement(NULL, pathPtr, objPtr); Tcl_DStringFree(&ds); } if (pathc > 3) { + str = pathv[pathc - 3]; pathv[pathc - 3] = installLib; path = Tcl_JoinPath(pathc - 2, pathv, &ds); + pathv[pathc - 3] = str; objPtr = Tcl_NewStringObj(path, Tcl_DStringLength(&ds)); Tcl_ListObjAppendElement(NULL, pathPtr, objPtr); Tcl_DStringFree(&ds); } if (pathc > 2) { + str = pathv[pathc - 2]; pathv[pathc - 2] = "library"; path = Tcl_JoinPath(pathc - 1, pathv, &ds); + pathv[pathc - 2] = str; objPtr = Tcl_NewStringObj(path, Tcl_DStringLength(&ds)); Tcl_ListObjAppendElement(NULL, pathPtr, objPtr); Tcl_DStringFree(&ds); } if (pathc > 3) { + str = pathv[pathc - 3]; pathv[pathc - 3] = "library"; path = Tcl_JoinPath(pathc - 2, pathv, &ds); + pathv[pathc - 3] = str; objPtr = Tcl_NewStringObj(path, Tcl_DStringLength(&ds)); Tcl_ListObjAppendElement(NULL, pathPtr, objPtr); Tcl_DStringFree(&ds); } if (pathc > 3) { + str = pathv[pathc - 3]; pathv[pathc - 3] = developLib; path = Tcl_JoinPath(pathc - 2, pathv, &ds); + pathv[pathc - 3] = str; objPtr = Tcl_NewStringObj(path, Tcl_DStringLength(&ds)); Tcl_ListObjAppendElement(NULL, pathPtr, objPtr); Tcl_DStringFree(&ds); } if (pathc > 4) { + str = pathv[pathc - 4]; pathv[pathc - 4] = developLib; path = Tcl_JoinPath(pathc - 3, pathv, &ds); + pathv[pathc - 4] = str; objPtr = Tcl_NewStringObj(path, Tcl_DStringLength(&ds)); Tcl_ListObjAppendElement(NULL, pathPtr, objPtr); Tcl_DStringFree(&ds); |
