From 321cae9eb02ef9be8aa3cbda8169047dcfd3487c Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Tue, 18 Aug 2020 11:09:56 -0700 Subject: [PATCH] 1. Fixed crash that could happen when you close a FD in fs.closeSync() 2. Added 'cancel' method/event to zip-writer.js 3. Fixed bug in Windows Zip-Writer when parsing basePath 4. Added ability to manually specify basePath in Zip-Writer --- microscript/ILibDuktape_Polyfills.c | 2 +- microscript/ILibDuktape_fs.c | 2 +- modules/zip-writer.js | 39 ++++++++++++++++++++++++++--- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/microscript/ILibDuktape_Polyfills.c b/microscript/ILibDuktape_Polyfills.c index b59a2bd..d403614 100644 --- a/microscript/ILibDuktape_Polyfills.c +++ b/microscript/ILibDuktape_Polyfills.c @@ -2337,7 +2337,7 @@ void ILibDuktape_Polyfills_JS_Init(duk_context *ctx) duk_peval_string_noresult(ctx, "addCompressedModule('zip-reader', Buffer.from('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', 'base64'));"); // zip-writer, refer to modules/zip-writer.js - duk_peval_string_noresult(ctx, "addCompressedModule('zip-writer', Buffer.from('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', 'base64'));"); + duk_peval_string_noresult(ctx, "addCompressedModule('zip-writer', Buffer.from('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', 'base64'));"); // update-helper, refer to modules/update-helper.js duk_peval_string_noresult(ctx, "addCompressedModule('update-helper', Buffer.from('eJytVd9v2zYQfheg/+GaF8mdK2d5jNEHL00xY4UzREmDdhgCWjrJzGSSI6m6XuD/fUdRtiX/QPcwvYgi77777rs7avQ2DG6kWmteLixcXV5dwlRYrOBGaiU1s1yKMAiDTzxDYTCHWuSowS4QJopl9GpPhvAZtSFruEouIXYGF+3RxWAcBmtZw5KtQUgLtUFC4AYKXiHg9wyVBS4gk0tVcSYyhBW3iyZKi5GEwZcWQc4tI2NG5oq+iq4ZMOvYAj0La9X1aLRarRLWME2kLkeVtzOjT9Ob21l6+47YOo9HUaExoPHvmmtKc74GpohMxuZEsWIrkBpYqZHOrHRkV5pbLsohGFnYFdMYBjk3VvN5bXs6balRvl0DUooJuJikME0v4JdJOk2HYfA0ffj17vEBnib395PZw/Q2hbt7uLmbfZg+TO9m9PURJrMv8Nt09mEISCpRFPyutGNPFLlTEHOSK0XshS+kp2MUZrzgGSUlypqVCKX8hlpQLqBQL7lxVTRELg+Dii+5bZrAHGdEQd6OnHjfmAalJbkivN9qGEftVuTKHwZFLTIHBMYybeNa5czi78wuBmHw6kvmcDRawhC42iLGO8eYkhySwcsAXpv+SZ5pp4loxruNl2bjZQwbF9fB8gLiNztW/3D1TiOjXKJBws1XrrpcHDRRaJDjwdita92EtvS18YCtActPJN2Dd4su+vi0f0Kiin2ez95jgRXVIyZAhfnAe7ZCbcVS/7dUW7l80MTNp0kqFCVN45v38PNgb9ah4h7VAMbRo6BuxMx1eCbpJhHWuGkhwGbao24k97SRskoS/+7hZr/EyuDZwFav+xsH555cjsZ2y1QYKk9GNbD4RIOMqaX1slMr+Ami51p4etGQZCwqVppriFbzqC/YAVv3ZMxmC4hx8ENqZ/M/EBZPnW27U/2Ajs8/cW1CIqjxyVPPhM794rSRFHHUcCVJ9t2267KDbPymC7sbqCPlWpcSbVuDbu/9cfnnIFFcYezjn2mQIx02rfAHkxUfj1GvfQ7q0++WWlRc/JWuRXZipE+7uD/UR8rjwOmwt/4r3EkGfbAzAjX92GvHo1TtmT7z2p7V3Rc2yqXYz/ZOfR92Lz92rtcmlG+H3a24v2rDYOP2lzKvK0zoSpHauvvr1f8+rv0LNmT4L6QVhQk=', 'base64'));"); diff --git a/microscript/ILibDuktape_fs.c b/microscript/ILibDuktape_fs.c index 2f5c252..b6bf235 100644 --- a/microscript/ILibDuktape_fs.c +++ b/microscript/ILibDuktape_fs.c @@ -747,7 +747,7 @@ BOOL ILibDuktape_fs_read_WindowsSink(void *chain, HANDLE h, ILibWaitHandle_Error duk_push_heapptr(data->ctx, data->userBuffer); // [callback][this][err][bytesRead][buffer] data->callback = NULL; data->userBuffer = NULL; - if (duk_pcall_method(data->ctx, 3) != 0) { ILibDuktape_Process_UncaughtExceptionEx(data->ctx, "fs.read.onCallack(): "); } + if (duk_pcall_method(data->ctx, 3) != 0) { ILibDuktape_Process_UncaughtExceptionEx(ctx, "fs.read.onCallack(): "); } duk_pop(ctx); // ... } return(FALSE); diff --git a/modules/zip-writer.js b/modules/zip-writer.js index bafe75b..d5ec6b0 100644 --- a/modules/zip-writer.js +++ b/modules/zip-writer.js @@ -49,7 +49,14 @@ function getBaseFolder(val) for (i = 0; i < val.length; ++i) { - test.push(val[i].split(D)); + if (process.platform == 'win32') + { + test.push(val[i].split('/').join('\\').split(D)); + } + else + { + test.push(val[i].split(D)); + } } if (val.length == 1) @@ -271,6 +278,13 @@ function write(options) } } }); + require('events').EventEmitter.call(ret, true) + .createEvent('cancel') + .addMethod('cancel', function(callback) + { + this._cancel = true; + if(callback!=null) { this.once('cancel', callback); } + }); ret._currentPosition = 0; ret._ObjectID = 'zip-writer.duplexStream'; ret.bufferMode = 1; @@ -282,11 +296,30 @@ function write(options) ret.pause(); options._localFileTable = {}; - options._baseFolder = getBaseFolder(options.files); - + options._baseFolder = (options.basePath == null ? getBaseFolder(options.files) : options.basePath); + if (options._baseFolder != '') + { + if (!options._baseFolder.endsWith(process.platform == 'win32' ? '\\' : '/')) { options._baseFolder += (process.platform == 'win32' ? '\\' : '/'); } + } ret._uncompressedReadSink = function _uncompressedReadSink(err, bytesRead, buffer) { var self = _uncompressedReadSink.self; + if(self._cancel) + { + self._compressor.end(); + self._compressor.unpipe(); + try + { + require('fs').closeSync(self._currentFD); + } + catch(e) + {} + + self.options.files.length = 0; + self.emit('cancel'); + self.end(); + return; + } if(bytesRead == 0) { // DONE