Overview
Comment: | propertyListValue -> objectByParsingPropertyList |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
d763a9ff865d0babd6775661bee02257 |
User & Date: | js on 2020-08-13 22:46:28 |
Other Links: | manifest | tags |
Context
2020-08-13
| ||
22:50 | Adjust generators to recent changes check-in: 728c7fb73e user: js tags: trunk | |
22:46 | propertyListValue -> objectByParsingPropertyList check-in: d763a9ff86 user: js tags: trunk | |
22:29 | OFData: ASN1DERValue -> objectByParsingASN1DER check-in: e479cef7b3 user: js tags: trunk | |
Changes
Modified src/Makefile from [75472655f7] to [02fc344718].
︙ | ︙ | |||
83 84 85 86 87 88 89 | OFSHA512Hash.m \ OFSortedList.m \ OFStdIOStream.m \ OFStream.m \ OFString.m \ OFString+CryptoHashing.m \ OFString+JSONParsing.m \ | | | 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | OFSHA512Hash.m \ OFSortedList.m \ OFStdIOStream.m \ OFStream.m \ OFString.m \ OFString+CryptoHashing.m \ OFString+JSONParsing.m \ OFString+PropertyListParsing.m \ OFString+Serialization.m \ OFString+URLEncoding.m \ OFString+XMLEscaping.m \ OFString+XMLUnescaping.m \ OFSystemInfo.m \ OFTarArchive.m \ OFTarArchiveEntry.m \ |
︙ | ︙ |
Renamed and modified src/OFString+PropertyListValue.h [6c64f3e60f] to src/OFString+PropertyListParsing.h [e83b475868].
︙ | ︙ | |||
18 19 20 21 22 23 24 | #import "OFString.h" OF_ASSUME_NONNULL_BEGIN #ifdef __cplusplus extern "C" { #endif | | | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #import "OFString.h" OF_ASSUME_NONNULL_BEGIN #ifdef __cplusplus extern "C" { #endif extern int _OFString_PropertyListParsing_reference; #ifdef __cplusplus } #endif @interface OFString (PropertyListParsing) /*! * @brief The string interpreted as a property list and parsed as an object. * * @note This only supports XML property lists! */ @property (readonly, nonatomic) id objectByParsingPropertyList; @end OF_ASSUME_NONNULL_END |
Renamed and modified src/OFString+PropertyListValue.m [05bf1a86e4] to src/OFString+PropertyListParsing.m [3c0b0b5b63].
︙ | ︙ | |||
13 14 15 16 17 18 19 | * 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" | | | | 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 39 | * 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" #import "OFString+PropertyListParsing.h" #import "OFArray.h" #import "OFData.h" #import "OFDate.h" #import "OFDictionary.h" #import "OFNumber.h" #import "OFXMLAttribute.h" #import "OFXMLElement.h" #import "OFInvalidFormatException.h" #import "OFUnsupportedVersionException.h" int _OFString_PropertyListParsing_reference; static id parseElement(OFXMLElement *element); static OFArray * parseArrayElement(OFXMLElement *element) { OFMutableArray *ret = [OFMutableArray array]; |
︙ | ︙ | |||
172 173 174 175 176 177 178 | return parseRealElement(element); else if ([elementName isEqual: @"integer"]) return parseIntegerElement(element); else @throw [OFInvalidFormatException exception]; } | | | | 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 | return parseRealElement(element); else if ([elementName isEqual: @"integer"]) return parseIntegerElement(element); else @throw [OFInvalidFormatException exception]; } @implementation OFString (PropertyListParsing) - (id)objectByParsingPropertyList { void *pool = objc_autoreleasePoolPush(); OFXMLElement *rootElement = [OFXMLElement elementWithXMLString: self]; OFXMLAttribute *versionAttribute; OFArray OF_GENERIC(OFXMLElement *) *elements; id ret; |
︙ | ︙ |
Modified src/OFString.h from [2923bf31dc] to [7689800b1d].
︙ | ︙ | |||
1280 1281 1282 1283 1284 1285 1286 | #include "OFMutableString.h" #ifdef __OBJC__ # import "OFString+CryptoHashing.h" # import "OFString+JSONParsing.h" # ifdef OF_HAVE_FILES # import "OFString+PathAdditions.h" # endif | | | 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 | #include "OFMutableString.h" #ifdef __OBJC__ # import "OFString+CryptoHashing.h" # import "OFString+JSONParsing.h" # ifdef OF_HAVE_FILES # import "OFString+PathAdditions.h" # endif # import "OFString+PropertyListParsing.h" # import "OFString+Serialization.h" # import "OFString+URLEncoding.h" # import "OFString+XMLEscaping.h" # import "OFString+XMLUnescaping.h" #endif #if defined(__OBJC__) && !defined(NSINTEGER_DEFINED) && !__has_feature(modules) |
︙ | ︙ |
Modified src/OFString.m from [6889fff2f5] to [25f4cd81db].
︙ | ︙ | |||
130 131 132 133 134 135 136 | _references_to_categories_of_OFString(void) { _OFString_CryptoHashing_reference = 1; _OFString_JSONParsing_reference = 1; #ifdef OF_HAVE_FILES _OFString_PathAdditions_reference = 1; #endif | | | 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | _references_to_categories_of_OFString(void) { _OFString_CryptoHashing_reference = 1; _OFString_JSONParsing_reference = 1; #ifdef OF_HAVE_FILES _OFString_PathAdditions_reference = 1; #endif _OFString_PropertyListParsing_reference = 1; _OFString_Serialization_reference = 1; _OFString_URLEncoding_reference = 1; _OFString_XMLEscaping_reference = 1; _OFString_XMLUnescaping_reference = 1; } void |
︙ | ︙ |
Modified src/OFSystemInfo.m from [0f92abda7c] to [4e15025453].
︙ | ︙ | |||
148 149 150 151 152 153 154 | #if defined(OF_IOS) || defined(OF_MACOS) # ifdef OF_HAVE_FILES void *pool = objc_autoreleasePoolPush(); @try { OFDictionary *propertyList = [OFString stringWithContentsOfFile: @"/System/Library/CoreServices/SystemVersion.plist"] | | | 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | #if defined(OF_IOS) || defined(OF_MACOS) # ifdef OF_HAVE_FILES void *pool = objc_autoreleasePoolPush(); @try { OFDictionary *propertyList = [OFString stringWithContentsOfFile: @"/System/Library/CoreServices/SystemVersion.plist"] .objectByParsingPropertyList; operatingSystemVersion = [[propertyList objectForKey: @"ProductVersion"] copy]; } @finally { objc_autoreleasePoolPop(pool); } # endif |
︙ | ︙ |
Modified tests/OFPropertyListTests.m from [709f5222a8] to [0566a8c454].
︙ | ︙ | |||
66 67 68 69 70 71 72 | [OFDate dateWithTimeIntervalSince1970: 1521030896], [OFNumber numberWithBool: true], [OFNumber numberWithBool: false], [OFNumber numberWithFloat: 12.25], [OFNumber numberWithInt: -10], nil]; | | | | | | | | | | | | | | | | | > | | > | 66 67 68 69 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 | [OFDate dateWithTimeIntervalSince1970: 1521030896], [OFNumber numberWithBool: true], [OFNumber numberWithBool: false], [OFNumber numberWithFloat: 12.25], [OFNumber numberWithInt: -10], nil]; TEST(@"-[objectByParsingPropertyList:] #1", [PLIST1.objectByParsingPropertyList isEqual: @"Hello"]) TEST(@"-[objectByParsingPropertyList:] #2", [PLIST2.objectByParsingPropertyList isEqual: array]) TEST(@"-[objectByParsingPropertyList:] #3", [PLIST3.objectByParsingPropertyList isEqual: [OFDictionary dictionaryWithKeysAndObjects: @"array", array, @"foo", @"bar", nil]]) EXPECT_EXCEPTION(@"Detecting unsupported version", OFUnsupportedVersionException, [[PLIST(@"<string/>") stringByReplacingOccurrencesOfString: @"1.0" withString: @"1.1"] objectByParsingPropertyList]) EXPECT_EXCEPTION( @"-[objectByParsingPropertyList] detecting invalid format #1", OFInvalidFormatException, [PLIST(@"<string x='b'/>") objectByParsingPropertyList]) EXPECT_EXCEPTION( @"-[objectByParsingPropertyList] detecting invalid format #2", OFInvalidFormatException, [PLIST(@"<string xmlns='foo'/>") objectByParsingPropertyList]) EXPECT_EXCEPTION( @"-[objectByParsingPropertyList] detecting invalid format #3", OFInvalidFormatException, [PLIST(@"<dict count='0'/>") objectByParsingPropertyList]) EXPECT_EXCEPTION( @"-[objectByParsingPropertyList] detecting invalid format #4", OFInvalidFormatException, [PLIST(@"<dict><key/><string/><key/></dict>") objectByParsingPropertyList]) EXPECT_EXCEPTION( @"-[objectByParsingPropertyList] detecting invalid format #5", OFInvalidFormatException, [PLIST(@"<dict><key x='x'/><string/></dict>") objectByParsingPropertyList]) objc_autoreleasePoolPop(pool); } @end |