Differences From Artifact [03760bd752]:
- File
utils/ofzip/ZIPArchive.m
— part of check-in
[41e83e895c]
at
2016-05-06 14:09:29
on branch trunk
— OFZIPArchiveEntry: Add generalPurposeBitFlag
This existed before, but was private.
Additionally, ofzip -lvvv now also shows the general purpose bit flag. (user: js, size: 6439) [annotate] [blame] [check-ins using]
To Artifact [71fb0eed5b]:
- File utils/ofzip/ZIPArchive.m — part of check-in [fed68f8fd5] at 2016-05-16 13:44:55 on branch trunk — OFZIP: Add a mode for printing files (user: js, size: 7264) [annotate] [blame] [check-ins using]
︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | + + + | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #include "config.h" #include <errno.h> #import "OFDate.h" #import "OFSet.h" #import "OFApplication.h" #import "OFFileManager.h" #import "OFStdIOStream.h" #import "ZIPArchive.h" #import "OFZIP.h" #import "OFInvalidFormatException.h" #import "OFOpenItemFailedException.h" #ifndef S_IRWXG # define S_IRWXG 0 #endif #ifndef S_IRWXO # define S_IRWXO 0 #endif |
︙ | |||
254 255 256 257 258 259 260 261 | 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | for (OFString *file in missing) [of_stderr writeFormat: @"File %@ is not in the archive!\n", file]; app->_exitStatus = 1; } } - (void)printFiles: (OFArray OF_GENERIC(OFString*)*)files { OFStream *stream; if ([files count] < 1) { [of_stderr writeLine: @"Need one or more files to print!"]; app->_exitStatus = 1; return; } for (OFString *path in files) { @try { stream = [_archive streamForReadingFile: path]; } @catch (OFOpenItemFailedException *e) { if ([e errNo] == ENOENT) { [of_stderr writeFormat: @"File %@ is not in the archive!\n", [e path]]; app->_exitStatus = 1; continue; } @throw e; } while (![stream isAtEndOfStream]) { ssize_t length = [app copyBlockFromStream: stream toStream: of_stdout fileName: path]; if (length < 0) { app->_exitStatus = 1; return; } } [stream close]; } } @end |