(name, file, compressedObject, offset, platform)
| 13094 | * @return {object} the zip parts. |
| 13095 | */ |
| 13096 | var 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); |
nothing calls this directly
no test coverage detected