summaryrefslogtreecommitdiffstats
path: root/unix/tkAppInit.c
diff options
context:
space:
mode:
Diffstat (limited to 'unix/tkAppInit.c')
-rw-r--r--unix/tkAppInit.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/unix/tkAppInit.c b/unix/tkAppInit.c
index 13bcdde..5b4575b 100644
--- a/unix/tkAppInit.c
+++ b/unix/tkAppInit.c
@@ -32,6 +32,14 @@ extern Tcl_PackageInitProc Tktest_Init;
#ifndef MODULE_SCOPE
# define MODULE_SCOPE extern
#endif
+#ifdef TCL_ZIPVFS
+ #include "tkInt.h"
+
+ MODULE_SCOPE int Tcl_Zvfs_Boot(const char *,const char *,const char *);
+ MODULE_SCOPE int Zvfs_Init(Tcl_Interp *);
+ MODULE_SCOPE int Zvfs_SafeInit(Tcl_Interp *);
+
+#endif /* TCL_ZIPVFS */
MODULE_SCOPE int TK_LOCAL_APPINIT(Tcl_Interp *);
MODULE_SCOPE int main(int, char **);
@@ -74,7 +82,13 @@ main(
#ifdef TK_LOCAL_MAIN_HOOK
TK_LOCAL_MAIN_HOOK(&argc, &argv);
#endif
-
+#ifdef TCL_ZIPVFS
+ #define TCLKIT_INIT "main.tcl"
+ #define TCLKIT_VFSMOUNT "/zvfs"
+ Tcl_FindExecutable(argv[0]);
+ CONST char *cp=Tcl_GetNameOfExecutable();
+ Tcl_Zvfs_Boot(cp,TCLKIT_VFSMOUNT,TCLKIT_INIT);
+#endif
Tk_Main(argc, argv, TK_LOCAL_APPINIT);
return 0; /* Needed only to prevent compiler warning. */
}
@@ -111,6 +125,13 @@ Tcl_AppInit(
}
Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit);
+#ifdef TCL_ZIPVFS
+ /* Load the ZipVfs package */
+ Tcl_StaticPackage(interp, "zvfs", Zvfs_Init, Zvfs_SafeInit);
+ if(Zvfs_Init(interp) == TCL_ERROR) {
+ return TCL_ERROR;
+ }
+#endif
#ifdef TK_TEST
if (Tktest_Init(interp) == TCL_ERROR) {
return TCL_ERROR;