Overview
Comment: | utils/ofzip: Recompose paths |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
0d49a2e6a731a13188d8e48d416c005c |
User & Date: | js on 2015-06-28 17:09:41 |
Other Links: | manifest | tags |
Context
2015-06-28
| ||
17:16 | {generators,utils/of{hash,http}}: Use generics check-in: 325f616d84 user: js tags: trunk | |
17:09 | utils/ofzip: Recompose paths check-in: 0d49a2e6a7 user: js tags: trunk | |
17:02 | utils/ofzip: Make use of generics check-in: c3581d80a2 user: js tags: trunk | |
Changes
Modified utils/ofzip/OFZIP.m from [5f988826d6] to [1e1f67001f].
︙ | ︙ | |||
293 294 295 296 297 298 299 300 301 302 303 304 305 306 | missing = [OFMutableSet setWithArray: files]; entryEnumerator = [[archive entries] objectEnumerator]; while ((entry = [entryEnumerator nextObject]) != nil) { void *pool = objc_autoreleasePoolPush(); OFString *fileName = [entry fileName]; OFString *outFileName = [fileName stringByStandardizingPath]; OFEnumerator OF_GENERIC(OFString*) *componentEnumerator; OFString *component, *directory; OFStream *stream; OFFile *output; char buffer[BUFFER_SIZE]; uint64_t written = 0, size = [entry uncompressedSize]; int_fast8_t percent = -1, newPercent; | > | 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 | missing = [OFMutableSet setWithArray: files]; entryEnumerator = [[archive entries] objectEnumerator]; while ((entry = [entryEnumerator nextObject]) != nil) { void *pool = objc_autoreleasePoolPush(); OFString *fileName = [entry fileName]; OFString *outFileName = [fileName stringByStandardizingPath]; OFArray OF_GENERIC(OFString*) *pathComponents; OFEnumerator OF_GENERIC(OFString*) *componentEnumerator; OFString *component, *directory; OFStream *stream; OFFile *output; char buffer[BUFFER_SIZE]; uint64_t written = 0, size = [entry uncompressedSize]; int_fast8_t percent = -1, newPercent; |
︙ | ︙ | |||
314 315 316 317 318 319 320 321 | if ([outFileName hasPrefix: @"/"]) { #else if ([outFileName hasPrefix: @"/"] || [outFileName containsString: @":"]) { #endif [of_stderr writeFormat: @"Refusing to extract %@!\n", fileName]; _exitStatus = 1; | > < > > | < > < > > | | > | 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 | if ([outFileName hasPrefix: @"/"]) { #else if ([outFileName hasPrefix: @"/"] || [outFileName containsString: @":"]) { #endif [of_stderr writeFormat: @"Refusing to extract %@!\n", fileName]; _exitStatus = 1; goto outer_loop_end; } pathComponents = [outFileName pathComponents]; componentEnumerator = [pathComponents objectEnumerator]; while ((component = [componentEnumerator nextObject]) != nil) { if ([component isEqual: OF_PATH_PARENT_DIRECTORY]) { [of_stderr writeFormat: @"Refusing to extract %@!\n", fileName]; _exitStatus = 1; goto outer_loop_end; } } outFileName = [OFString pathWithComponents: pathComponents]; if (_outputLevel >= 0) [of_stdout writeFormat: @"Extracting %@...", fileName]; if ([fileName hasSuffix: @"/"]) { [OFFile createDirectoryAtPath: outFileName createParents: true]; setPermissions(outFileName, entry); if (_outputLevel >= 0) [of_stdout writeLine: @" done"]; goto outer_loop_end; } directory = [outFileName stringByDeletingLastPathComponent]; if (![OFFile directoryExistsAtPath: directory]) [OFFile createDirectoryAtPath: directory createParents: true]; if ([OFFile fileExistsAtPath: outFileName] && _override != 1) { OFString *line; if (_override == -1) { if (_outputLevel >= 0) [of_stdout writeLine: @" skipped"]; goto outer_loop_end; } do { [of_stderr writeFormat: @"\rOverride %@? [ynAN?] ", fileName]; line = [of_stdin readLine]; |
︙ | ︙ | |||
380 381 382 383 384 385 386 | _override = 1; else if ([line isEqual: @"N"]) _override = -1; if ([line isEqual: @"n"] || [line isEqual: @"N"]) { [of_stdout writeFormat: @"Skipping %@...\n", fileName]; | | > | 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 | _override = 1; else if ([line isEqual: @"N"]) _override = -1; if ([line isEqual: @"n"] || [line isEqual: @"N"]) { [of_stdout writeFormat: @"Skipping %@...\n", fileName]; goto outer_loop_end; } [of_stdout writeFormat: @"Extracting %@...", fileName]; } stream = [archive streamForReadingFile: fileName]; output = [OFFile fileWithPath: outFileName |
︙ | ︙ |