MCPcopy Create free account
hub / github.com/TruthHun/BookStack / generateZipParts

Function generateZipParts

static/word2md/mammoth.browser.js:13096–13257  ·  view source on GitHub ↗
(name, file, compressedObject, offset, platform)

Source from the content-addressed store, hash-verified

13094 * @return {object} the zip parts.
13095 */
13096var generateZipParts = function(name, file, compressedObject, offset, platform) {
13097 var data = compressedObject.compressedContent,
13098 utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)),
13099 comment = file.comment || "",
13100 utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)),
13101 useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,
13102 useUTF8ForComment = utfEncodedComment.length !== comment.length,
13103 o = file.options,
13104 dosTime,
13105 dosDate,
13106 extraFields = "",
13107 unicodePathExtraField = "",
13108 unicodeCommentExtraField = "",
13109 dir, date;
13110
13111
13112 // handle the deprecated options.dir
13113 if (file._initialMetadata.dir !== file.dir) {
13114 dir = file.dir;
13115 } else {
13116 dir = o.dir;
13117 }
13118
13119 // handle the deprecated options.date
13120 if(file._initialMetadata.date !== file.date) {
13121 date = file.date;
13122 } else {
13123 date = o.date;
13124 }
13125
13126 var extFileAttr = 0;
13127 var versionMadeBy = 0;
13128 if (dir) {
13129 // dos or unix, we set the dos dir flag
13130 extFileAttr |= 0x00010;
13131 }
13132 if(platform === "UNIX") {
13133 versionMadeBy = 0x031E; // UNIX, version 3.0
13134 extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir);
13135 } else { // DOS or other, fallback to DOS
13136 versionMadeBy = 0x0014; // DOS, version 2.0
13137 extFileAttr |= generateDosExternalFileAttr(file.dosPermissions, dir);
13138 }
13139
13140 // date
13141 // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html
13142 // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html
13143 // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html
13144
13145 dosTime = date.getHours();
13146 dosTime = dosTime << 6;
13147 dosTime = dosTime | date.getMinutes();
13148 dosTime = dosTime << 5;
13149 dosTime = dosTime | date.getSeconds() / 2;
13150
13151 dosDate = date.getFullYear() - 1980;
13152 dosDate = dosDate << 4;
13153 dosDate = dosDate | (date.getMonth() + 1);

Callers

nothing calls this directly

Calls 4

decToHexFunction · 0.70
crc32Function · 0.70

Tested by

no test coverage detected