diff options
author | dgp <dgp@users.sourceforge.net> | 2019-04-29 19:26:40 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2019-04-29 19:26:40 (GMT) |
commit | b3676ba87cb737e7954dd8c6ad6515ae6a872674 (patch) | |
tree | f0f1a668e98009f7be9468f06993d761ba407917 | |
parent | 59a2032b5d7bb96e903eb711f742976d0c7f73db (diff) | |
download | tcl-b3676ba87cb737e7954dd8c6ad6515ae6a872674.zip tcl-b3676ba87cb737e7954dd8c6ad6515ae6a872674.tar.gz tcl-b3676ba87cb737e7954dd8c6ad6515ae6a872674.tar.bz2 |
more WIP
-rw-r--r-- | generic/tclZipfs.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/generic/tclZipfs.c b/generic/tclZipfs.c index 4f2e43d..0fd65a4 100644 --- a/generic/tclZipfs.c +++ b/generic/tclZipfs.c @@ -997,6 +997,7 @@ ZipFSFindTOC( if (interp) { Tcl_SetErrorCode(interp, "TCL", "ZIPFS", "END_SIG", NULL); } +fprintf(stdout, "TOC FAIL 1\n"); fflush(stdout); goto error; } zf->numFiles = ZipReadShort(p + ZIP_CENTRAL_ENTS_OFFS); @@ -1009,6 +1010,7 @@ ZipFSFindTOC( if (interp) { Tcl_SetErrorCode(interp, "TCL", "ZIPFS", "EMPTY", NULL); } +fprintf(stdout, "TOC FAIL 2\n"); fflush(stdout); goto error; } q = zf->data + ZipReadInt(p + ZIP_CENTRAL_DIRSTART_OFFS); @@ -1023,6 +1025,7 @@ ZipFSFindTOC( if (interp) { Tcl_SetErrorCode(interp, "TCL", "ZIPFS", "NO_DIR", NULL); } +fprintf(stdout, "TOC FAIL 3\n"); fflush(stdout); goto error; } zf->baseOffset = zf->passOffset = p - q; @@ -1036,6 +1039,7 @@ ZipFSFindTOC( if (interp) { Tcl_SetErrorCode(interp, "TCL", "ZIPFS", "HDR_LEN", NULL); } +fprintf(stdout, "TOC FAIL 4\n"); fflush(stdout); goto error; } if (ZipReadInt(q) != ZIP_CENTRAL_HEADER_SIG) { @@ -1043,6 +1047,7 @@ ZipFSFindTOC( if (interp) { Tcl_SetErrorCode(interp, "TCL", "ZIPFS", "HDR_SIG", NULL); } +fprintf(stdout, "TOC FAIL 5\n"); fflush(stdout); goto error; } pathlen = ZipReadShort(q + ZIP_CENTRAL_PATHLEN_OFFS); @@ -1113,6 +1118,7 @@ ZipFSOpenArchive( zf->passBuf[0] = 0; zf->chan = Tcl_OpenFileChannel(interp, zipname, "rb", 0); if (!zf->chan) { +fprintf(stdout, "OA FAIL 1\n"); fflush(stdout); return TCL_ERROR; } if (Tcl_GetChannelHandle(zf->chan, TCL_READABLE, &handle) != TCL_OK) { @@ -1189,10 +1195,12 @@ ZipFSOpenArchive( } #endif /* _WIN32 */ } +fprintf(stdout, "OA END\n"); fflush(stdout); return ZipFSFindTOC(interp, needZip, zf); error: ZipFSCloseArchive(interp, zf); +fprintf(stdout, "OA FAIL 2\n"); fflush(stdout); return TCL_ERROR; } @@ -1685,10 +1693,18 @@ fprintf(stdout, "MOUNT FAIL A\n"); fflush(stdout); } if (ZipFSOpenArchive(interp, zipname, 1, zf) != TCL_OK) { fprintf(stdout, "MOUNT FAIL B\n"); fflush(stdout); + ckfree(zf); + return TCL_ERROR; + } + if (ZipFSCatalogFilesystem(interp, zf, mountPoint, passwd, zipname) + != TCL_OK) { +fprintf(stdout, "MOUNT FAIL C\n"); fflush(stdout); + ckfree(zf); return TCL_ERROR; } fprintf(stdout, "MOUNT END\n"); fflush(stdout); - return ZipFSCatalogFilesystem(interp, zf, mountPoint, passwd, zipname); + Tcl_CreateExitHandler(ZipfsExitHandler, (ClientData)mountPoint); + return TCL_OK; } /* @@ -4907,6 +4923,8 @@ fprintf(stdout, "START\n"); fflush(stdout); fprintf(stdout, "MOUNTED\n"); fflush(stdout); +// Tcl_CreateExitHandler(ZipfsExitHandler, (ClientData)ZIPFS_APP_MOUNT); + TclNewLiteralStringObj(vfsInitScript, ZIPFS_APP_MOUNT "/main.tcl"); Tcl_IncrRefCount(vfsInitScript); if (Tcl_FSAccess(vfsInitScript, F_OK) == 0) { @@ -4968,6 +4986,8 @@ fprintf(stdout, "MOUNTED\n"); fflush(stdout); int found; Tcl_Obj *vfsInitScript; +// Tcl_CreateExitHandler(ZipfsExitHandler, (ClientData)ZIPFS_APP_MOUNT); + TclNewLiteralStringObj(vfsInitScript, ZIPFS_APP_MOUNT "/main.tcl"); Tcl_IncrRefCount(vfsInitScript); if (Tcl_FSAccess(vfsInitScript, F_OK) == 0) { @@ -4995,8 +5015,6 @@ fprintf(stdout, "MOUNTED\n"); fflush(stdout); #endif /* _WIN32 */ #endif /* SUPPORT_BUILTIN_ZIP_INSTALL */ } -fprintf(stdout, "HANDLE\n"); fflush(stdout); - Tcl_CreateExitHandler(ZipfsExitHandler, (ClientData)ZIPFS_APP_MOUNT); fprintf(stdout, "END\n"); fflush(stdout); return TCL_OK; } |