diff options
| author | dgp <dgp@users.sourceforge.net> | 2023-11-13 19:24:20 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2023-11-13 19:24:20 (GMT) |
| commit | 4c391a13ae96bbc5307b97af37bafa4e58ab5b86 (patch) | |
| tree | c1a76d98c7cfb38ce3bb0b5143cffcb5daf3b811 | |
| parent | 7bb4d6043c9e6fe2c2d246a3cf47f7bfca7cd538 (diff) | |
| download | tcl-4c391a13ae96bbc5307b97af37bafa4e58ab5b86.zip tcl-4c391a13ae96bbc5307b97af37bafa4e58ab5b86.tar.gz tcl-4c391a13ae96bbc5307b97af37bafa4e58ab5b86.tar.bz2 | |
Make calls early to find the script library in zipfs archive and alert
the Tcl library to its location so that all interps find it when created.
| -rw-r--r-- | generic/tclZipfs.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/generic/tclZipfs.c b/generic/tclZipfs.c index adb7802..36fc82a 100644 --- a/generic/tclZipfs.c +++ b/generic/tclZipfs.c @@ -6453,6 +6453,7 @@ TclZipfs_AppHook( Tcl_DecrRefCount(vfsInitScript); if (found == TCL_OK) { zipfs_literal_tcl_library = ZIPFS_TCL_LIBRARY_1; + Tcl_DecrRefCount(TclZipfs_TclLibrary()); return version; } } @@ -6479,7 +6480,7 @@ TclZipfs_AppHook( * wants it. */ - TclZipfs_TclLibrary(); + Tcl_DecrRefCount(TclZipfs_TclLibrary()); TclNewLiteralStringObj(vfsInitScript, ZIPFS_TCL_LIBRARY_3 "install.tcl"); Tcl_IncrRefCount(vfsInitScript); @@ -6491,6 +6492,17 @@ TclZipfs_AppHook( int found; Tcl_Obj *vfsInitScript; + /* Set Tcl Encodings */ + TclNewLiteralStringObj(vfsInitScript, + ZIPFS_TCL_LIBRARY_1 "/init.tcl"); + Tcl_IncrRefCount(vfsInitScript); + found = Tcl_FSAccess(vfsInitScript, F_OK); + Tcl_DecrRefCount(vfsInitScript); + if (found == TCL_OK) { + zipfs_literal_tcl_library = ZIPFS_TCL_LIBRARY_1; + Tcl_DecrRefCount(TclZipfs_TclLibrary()); + } + TclNewLiteralStringObj(vfsInitScript, ZIPFS_APP_MOUNT "/main.tcl"); Tcl_IncrRefCount(vfsInitScript); if (Tcl_FSAccess(vfsInitScript, F_OK) == 0) { @@ -6502,14 +6514,8 @@ TclZipfs_AppHook( } else { Tcl_DecrRefCount(vfsInitScript); } - /* Set Tcl Encodings */ - TclNewLiteralStringObj(vfsInitScript, - ZIPFS_TCL_LIBRARY_1 "/init.tcl"); - Tcl_IncrRefCount(vfsInitScript); - found = Tcl_FSAccess(vfsInitScript, F_OK); - Tcl_DecrRefCount(vfsInitScript); + if (found == TCL_OK) { - zipfs_literal_tcl_library = ZIPFS_TCL_LIBRARY_1; return version; } } |
