Overview
Comment: | OFFileIRIHandler: Correctly transform exception |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | 1.0 |
Files: | files | file ages | folders |
SHA3-256: |
1829139db1ddb5cecf1bc7b70efefae3 |
User & Date: | js on 2024-03-03 23:35:10 |
Other Links: | branch diff | manifest | tags |
Context
2024-03-04
| ||
00:43 | Fix -[OFHTTPClientResponse isAtEndOfStream] check-in: 0d804ed391 user: js tags: 1.0 | |
2024-03-03
| ||
23:35 | OFFileIRIHandler: Correctly transform exception check-in: 1829139db1 user: js tags: 1.0 | |
23:34 | OFFileIRIHandler: Correctly transform exception check-in: b66e682fc6 user: js tags: trunk | |
2024-03-02
| ||
21:20 | Minor documentation fix check-in: b9f69f358f user: js tags: 1.0 | |
Changes
Modified src/OFArchiveIRIHandler.m from [8162b3d921] to [1718f6ad9e].
︙ | ︙ | |||
70 71 72 73 74 75 76 | /* * GZIP only compresses one file and thus has no path inside an * archive. */ if ([scheme isEqual: @"gzip"]) { stream = [OFIRIHandler openItemAtIRI: [OFIRI IRIWithString: IRI.path] | | | | | | | 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | /* * GZIP only compresses one file and thus has no path inside an * archive. */ if ([scheme isEqual: @"gzip"]) { stream = [OFIRIHandler openItemAtIRI: [OFIRI IRIWithString: IRI.path] mode: mode]; stream = [OFGZIPStream streamWithStream: stream mode: mode]; goto end; } percentEncodedPath = IRI.percentEncodedPath; pos = [percentEncodedPath rangeOfString: @"!"].location; if (pos == OFNotFound) @throw [OFInvalidArgumentException exception]; archiveIRI = [OFIRI IRIWithString: [percentEncodedPath substringWithRange: OFMakeRange(0, pos)] .stringByRemovingPercentEncoding]; path = [percentEncodedPath substringWithRange: OFMakeRange(pos + 1, percentEncodedPath.length - pos - 1)] .stringByRemovingPercentEncoding; if ([scheme isEqual: @"lha"]) { OFLHAArchive *archive = [OFLHAArchive archiveWithIRI: archiveIRI mode: mode]; OFLHAArchiveEntry *entry; while ((entry = [archive nextEntry]) != nil) { if ([entry.fileName isEqual: path]) { stream = [archive streamForReadingCurrentEntry]; goto end; } } @throw [OFOpenItemFailedException exceptionWithIRI: IRI mode: mode errNo: ENOENT]; } else if ([scheme isEqual: @"tar"]) { OFTarArchive *archive = [OFTarArchive archiveWithIRI: archiveIRI mode: mode]; OFTarArchiveEntry *entry; while ((entry = [archive nextEntry]) != nil) { if ([entry.fileName isEqual: path]) { stream = [archive streamForReadingCurrentEntry]; goto end; } } @throw [OFOpenItemFailedException exceptionWithIRI: IRI mode: mode errNo: ENOENT]; } else if ([scheme isEqual: @"zip"]) { OFZIPArchive *archive = [OFZIPArchive archiveWithIRI: archiveIRI mode: mode]; stream = [archive streamForReadingFile: path]; } else @throw [OFInvalidArgumentException exception]; end: stream = [stream retain]; |
︙ | ︙ |
Modified src/OFFileIRIHandler.m from [a48795d357] to [7d64a7fa27].
︙ | ︙ | |||
675 676 677 678 679 680 681 | return S_ISDIR(s.st_mode); } - (OFStream *)openItemAtIRI: (OFIRI *)IRI mode: (OFString *)mode { void *pool = objc_autoreleasePoolPush(); | | > > | | > > > > > > > > | 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 | return S_ISDIR(s.st_mode); } - (OFStream *)openItemAtIRI: (OFIRI *)IRI mode: (OFString *)mode { void *pool = objc_autoreleasePoolPush(); OFFile *file; @try { file = [OFFile fileWithPath: IRI.fileSystemRepresentation mode: mode]; } @catch (OFOpenItemFailedException *e) { /* The thrown one has a path instead of an IRI set. */ @throw [OFOpenItemFailedException exceptionWithIRI: IRI mode: mode errNo: e.errNo]; } [file retain]; objc_autoreleasePoolPop(pool); return [file autorelease]; } - (OFFileAttributes)attributesOfItemAtIRI: (OFIRI *)IRI |
︙ | ︙ |