Overview
Comment: | OFINIFile: Allow comments before first category |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | 1.1 |
Files: | files | file ages | folders |
SHA3-256: |
b1eae58a7af245a378cbdbc1c8ded40a |
User & Date: | js on 2024-08-24 09:22:54 |
Other Links: | branch diff | manifest | tags |
Context
2024-08-24
| ||
10:32 | OFINICategory: Allow values in global category check-in: e2f6eea34e user: js tags: 1.1 | |
09:22 | OFINIFile: Allow comments before first category check-in: b1eae58a7a user: js tags: 1.1 | |
09:20 | OFINIFile: Allow comments before first category check-in: 904d0639c4 user: js tags: trunk | |
2024-08-23
| ||
23:30 | README.md: Fix missing word check-in: 79db0b69ae user: js tags: 1.1 | |
Changes
Modified src/OFINICategory+Private.h from [9fe10387de] to [f683fe929a].
︙ | |||
22 23 24 25 26 27 28 | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | - + + | OF_ASSUME_NONNULL_BEGIN @class OFStream; OF_DIRECT_MEMBERS @interface OFINICategory () |
Modified src/OFINICategory.m from [0e47b76592] to [8affd22517].
︙ | |||
151 152 153 154 155 156 157 | 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | - + - + + + + + | [super dealloc]; } - (void)of_parseLine: (OFString *)line { if (![line hasPrefix: @";"]) { |
︙ | |||
475 476 477 478 479 480 481 | 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 | + - - - - + + + + + | - (bool)of_writeToStream: (OFStream *)stream encoding: (OFStringEncoding)encoding first: (bool)first { if (_lines.count == 0) return false; if (_name != nil) { |
︙ |
Modified src/OFINIFile.h from [65e9f4aad7] to [632da78d0f].
︙ | |||
30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | + | * @class OFINIFile OFINIFile.h ObjFW/OFINIFile.h * * @brief A class for reading, creating and modifying INI files. */ OF_SUBCLASSING_RESTRICTED @interface OFINIFile: OFObject { OFINICategory *_prologue; OFMutableArray OF_GENERIC(OFINICategory *) *_categories; } /** * @brief All categories in the INI file. */ @property (readonly, nonatomic) OFArray OF_GENERIC(OFINICategory *) *categories; |
︙ |
Modified src/OFINIFile.m from [8879da27e2] to [e87f1f698c].
︙ | |||
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 | 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 | + + | } - (instancetype)initWithIRI: (OFIRI *)IRI encoding: (OFStringEncoding)encoding { self = [super init]; @try { _prologue = [[OFINICategory alloc] of_initWithName: nil]; _categories = [[OFMutableArray alloc] init]; [self of_parseIRI: IRI encoding: encoding]; } @catch (id e) { [self release]; @throw e; } return self; } - (void)dealloc { [_prologue release]; [_categories release]; [super dealloc]; } - (OFINICategory *)categoryForName: (OFString *)name { |
︙ | |||
114 115 116 117 118 119 120 | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | - + | return category; } - (void)of_parseIRI: (OFIRI *)IRI encoding: (OFStringEncoding)encoding { void *pool = objc_autoreleasePoolPush(); OFStream *file; |
︙ | |||
145 146 147 148 149 150 151 | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | - + - - - - + + + | @throw [OFInvalidFormatException exception]; categoryName = [line substringWithRange: OFMakeRange(1, line.length - 2)]; category = [[[OFINICategory alloc] of_initWithName: categoryName] autorelease]; [_categories addObject: category]; |
︙ |
Modified tests/OFINIFileTests.m from [97d500cefe] to [6b63270541].
︙ | |||
17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | + + | * <https://www.gnu.org/licenses/>. */ #include "config.h" #import "ObjFW.h" #import "ObjFWTest.h" #import "OFEmbeddedIRIHandler.h" @interface OFINIFileTests: OTTestCase { OFINIFile *_file; } @end |
︙ | |||
105 106 107 108 109 110 111 | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | - + + + | OTAssertEqualObjects([types arrayValueForKey: @"array2"], array); OTAssertEqualObjects([types arrayValueForKey: @"array3"], [OFArray array]); } - (void)testWriteToIRIEncoding { |
︙ | |||
168 169 170 171 172 173 174 175 | 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | + + + + + + + + + + + | } @finally { [[OFFileManager defaultManager] removeItemAtIRI: writeIRI]; } #else (void)expectedOutput; #endif } - (void)testValuePairOutsideOfCategoryRejected { OFIRI *IRI = [OFIRI IRIWithString: @"embedded:testfile_broken.ini"]; OFRegisterEmbeddedFile(@"testfile_broken.ini", (const uint8_t *)"; comment\r\na=b", 14); OTAssertThrowsSpecific([OFINIFile fileWithIRI: IRI], OFInvalidFormatException); } @end |
Modified tests/testfile.ini from [9e2ef2dc1a] to [e974f469b7].
|