Comment: | Rename *UsingEncoding: to *WithEncoding:.
This reverts 5362941. Even though *UsingEncoding: is what Foundation uses, *WithEncoding: is |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
9ddd33a2582fc895eefe72da7db45a87 |
User & Date: | js on 2013-01-12 17:29:24 |
Other Links: | manifest | tags |
2013-01-12
| ||
18:52 | Better way to conditionally compile files. check-in: 9c2c934851 user: js tags: trunk | |
17:29 | Rename *UsingEncoding: to *WithEncoding:. check-in: 9ddd33a258 user: js tags: trunk | |
2013-01-11
| ||
12:41 | OFString: Improve API for characters / UTF-32. check-in: 50916b8dbe user: js tags: trunk | |
Modified src/OFConstantString.m from [2975bd9973] to [eeb9601efb].
︙ | ︙ | |||
294 295 296 297 298 299 300 | - (const char*)UTF8String { [self finishInitialization]; return [self UTF8String]; } | | | | | | 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 | - (const char*)UTF8String { [self finishInitialization]; return [self UTF8String]; } - (const char*)cStringWithEncoding: (of_string_encoding_t)encoding { [self finishInitialization]; return [self cStringWithEncoding: encoding]; } - (size_t)length { [self finishInitialization]; return [self length]; } - (size_t)UTF8StringLength { [self finishInitialization]; return [self UTF8StringLength]; } - (size_t)cStringLengthWithEncoding: (of_string_encoding_t)encoding { [self finishInitialization]; return [self cStringLengthWithEncoding: encoding]; } - (of_comparison_result_t)caseInsensitiveCompare: (OFString*)otherString { [self finishInitialization]; return [self caseInsensitiveCompare: otherString]; |
︙ | ︙ |
Modified src/OFDataArray.m from [c0e1b1f89f] to [bc01872668].
︙ | ︙ | |||
178 179 180 181 182 183 184 | @try { const char *cString; size_t i; itemSize = 1; count = [string | | | | 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 | @try { const char *cString; size_t i; itemSize = 1; count = [string cStringLengthWithEncoding: OF_STRING_ENCODING_ASCII]; if (count & 1) @throw [OFInvalidFormatException exceptionWithClass: [self class]]; count >>= 1; cString = [string cStringWithEncoding: OF_STRING_ENCODING_ASCII]; items = [self allocMemoryWithSize: count]; for (i = 0; i < count; i++) { uint8_t c1 = cString[2 * i]; uint8_t c2 = cString[2 * i + 1]; uint8_t byte; |
︙ | ︙ | |||
231 232 233 234 235 236 237 | - initWithBase64EncodedString: (OFString*)string { self = [super init]; @try { itemSize = 1; | | | | 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | - initWithBase64EncodedString: (OFString*)string { self = [super init]; @try { itemSize = 1; if (!of_base64_decode(self, [string cStringWithEncoding: OF_STRING_ENCODING_ASCII], [string cStringLengthWithEncoding: OF_STRING_ENCODING_ASCII])) { Class c = [self class]; [self release]; @throw [OFInvalidFormatException exceptionWithClass: c]; } } @catch (id e) { [self release]; @throw e; |
︙ | ︙ | |||
265 266 267 268 269 270 271 | @throw [OFInvalidArgumentException exceptionWithClass: [self class] selector: _cmd]; stringValue = [element stringValue]; if (!of_base64_decode(self, [stringValue | | | | 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 | @throw [OFInvalidArgumentException exceptionWithClass: [self class] selector: _cmd]; stringValue = [element stringValue]; if (!of_base64_decode(self, [stringValue cStringWithEncoding: OF_STRING_ENCODING_ASCII], [stringValue cStringLengthWithEncoding: OF_STRING_ENCODING_ASCII])) @throw [OFInvalidFormatException exceptionWithClass: [self class]]; objc_autoreleasePoolPop(pool); } @catch (id e) { [self release]; |
︙ | ︙ |
Modified src/OFFile.m from [c320611d8a] to [25d73bc7b8].
︙ | ︙ | |||
211 212 213 214 215 216 217 | } + (BOOL)fileExistsAtPath: (OFString*)path { #ifndef _WIN32 struct stat s; | | | | | 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 | } + (BOOL)fileExistsAtPath: (OFString*)path { #ifndef _WIN32 struct stat s; if (stat([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], &s) == -1) return NO; #else struct _stat s; if (_wstat([path UTF16String], &s) == -1) return NO; #endif if (S_ISREG(s.st_mode)) return YES; return NO; } + (BOOL)directoryExistsAtPath: (OFString*)path { #ifndef _WIN32 struct stat s; if (stat([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], &s) == -1) return NO; #else struct _stat s; if (_wstat([path UTF16String], &s) == -1) return NO; #endif if (S_ISDIR(s.st_mode)) return YES; return NO; } + (void)createDirectoryAtPath: (OFString*)path { #ifndef _WIN32 if (mkdir([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], DIR_MODE)) #else if (_wmkdir([path UTF16String])) #endif @throw [OFCreateDirectoryFailedException exceptionWithClass: self path: path]; |
︙ | ︙ | |||
309 310 311 312 313 314 315 | { OFMutableArray *files = [OFMutableArray array]; #ifndef _WIN32 DIR *dir; struct dirent *dirent; | | | 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 | { OFMutableArray *files = [OFMutableArray array]; #ifndef _WIN32 DIR *dir; struct dirent *dirent; if ((dir = opendir([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE])) == NULL) @throw [OFOpenFileFailedException exceptionWithClass: self path: path mode: @"r"]; @try { while ((dirent = readdir(dir)) != NULL) { |
︙ | ︙ | |||
376 377 378 379 380 381 382 | return files; } + (void)changeToDirectoryAtPath: (OFString*)path { #ifndef _WIN32 | | | | 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 | return files; } + (void)changeToDirectoryAtPath: (OFString*)path { #ifndef _WIN32 if (chdir([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE])) #else if (_wchdir([path UTF16String])) #endif @throw [OFChangeDirectoryFailedException exceptionWithClass: self path: path]; } #ifndef _PSP + (void)changeModeOfFileAtPath: (OFString*)path mode: (mode_t)mode { # ifndef _WIN32 if (chmod([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], mode)) @throw [OFChangeFileModeFailedException exceptionWithClass: self path: path mode: mode]; # else DWORD attributes = GetFileAttributesW([path UTF16String]); |
︙ | ︙ | |||
423 424 425 426 427 428 429 | #endif + (off_t)sizeOfFileAtPath: (OFString*)path { #ifndef _WIN32 struct stat s; | | | | 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 | #endif + (off_t)sizeOfFileAtPath: (OFString*)path { #ifndef _WIN32 struct stat s; if (stat([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], &s) == -1) #else struct _stat s; if (_wstat([path UTF16String], &s) == -1) #endif /* FIXME: Maybe use another exception? */ @throw [OFOpenFileFailedException exceptionWithClass: self path: path mode: @"r"]; return s.st_size; } + (OFDate*)modificationDateOfFileAtPath: (OFString*)path { #ifndef _WIN32 struct stat s; if (stat([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], &s) == -1) #else struct _stat s; if (_wstat([path UTF16String], &s) == -1) #endif /* FIXME: Maybe use another exception? */ |
︙ | ︙ | |||
480 481 482 483 484 485 486 | @throw [OFLockFailedException exceptionWithClass: self]; @try { # endif if (owner != nil) { struct passwd *passwd; | | | | | 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 | @throw [OFLockFailedException exceptionWithClass: self]; @try { # endif if (owner != nil) { struct passwd *passwd; if ((passwd = getpwnam([owner cStringWithEncoding: OF_STRING_ENCODING_NATIVE])) == NULL) @throw [OFChangeFileOwnerFailedException exceptionWithClass: self path: path owner: owner group: group]; uid = passwd->pw_uid; } if (group != nil) { struct group *group_; if ((group_ = getgrnam([group cStringWithEncoding: OF_STRING_ENCODING_NATIVE])) == NULL) @throw [OFChangeFileOwnerFailedException exceptionWithClass: self path: path owner: owner group: group]; gid = group_->gr_gid; } # ifdef OF_THREADS } @finally { if (!of_mutex_unlock(&mutex)) @throw [OFUnlockFailedException exceptionWithClass: self]; } # endif if (chown([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], uid, gid)) @throw [OFChangeFileOwnerFailedException exceptionWithClass: self path: path owner: owner group: group]; } |
︙ | ︙ | |||
591 592 593 594 595 596 597 | if ([self directoryExistsAtPath: destination]) { OFString *filename = [source lastPathComponent]; destination = [OFString stringWithPath: destination, filename, nil]; } #ifndef _WIN32 | | | | | | | | | | 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 | if ([self directoryExistsAtPath: destination]) { OFString *filename = [source lastPathComponent]; destination = [OFString stringWithPath: destination, filename, nil]; } #ifndef _WIN32 if (rename([source cStringWithEncoding: OF_STRING_ENCODING_NATIVE], [destination cStringWithEncoding: OF_STRING_ENCODING_NATIVE])) #else if (!MoveFileW([source UTF16String], [destination UTF16String])) #endif @throw [OFRenameFileFailedException exceptionWithClass: self sourcePath: source destinationPath: destination]; objc_autoreleasePoolPop(pool); } + (void)deleteFileAtPath: (OFString*)path { #ifndef _WIN32 if (unlink([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE])) #else if (_wunlink([path UTF16String])) #endif @throw [OFDeleteFileFailedException exceptionWithClass: self path: path]; } + (void)deleteDirectoryAtPath: (OFString*)path { #ifndef _WIN32 if (rmdir([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE])) #else if (_wrmdir([path UTF16String])) #endif @throw [OFDeleteDirectoryFailedException exceptionWithClass: self path: path]; } #ifndef _WIN32 + (void)linkFileAtPath: (OFString*)source toPath: (OFString*)destination { void *pool = objc_autoreleasePoolPush(); if ([self directoryExistsAtPath: destination]) { OFString *filename = [source lastPathComponent]; destination = [OFString stringWithPath: destination, filename, nil]; } if (link([source cStringWithEncoding: OF_STRING_ENCODING_NATIVE], [destination cStringWithEncoding: OF_STRING_ENCODING_NATIVE]) != 0) @throw [OFLinkFailedException exceptionWithClass: self sourcePath: source destinationPath: destination]; objc_autoreleasePoolPop(pool); } #endif #if !defined(_WIN32) && !defined(_PSP) + (void)symlinkFileAtPath: (OFString*)source toPath: (OFString*)destination { void *pool = objc_autoreleasePoolPush(); if ([self directoryExistsAtPath: destination]) { OFString *filename = [source lastPathComponent]; destination = [OFString stringWithPath: destination, filename, nil]; } if (symlink([source cStringWithEncoding: OF_STRING_ENCODING_NATIVE], [destination cStringWithEncoding: OF_STRING_ENCODING_NATIVE]) != 0) @throw [OFSymlinkFailedException exceptionWithClass: self sourcePath: source destinationPath: destination]; objc_autoreleasePoolPop(pool); } |
︙ | ︙ | |||
697 698 699 700 701 702 703 | if ((flags = parse_mode([mode UTF8String])) == -1) @throw [OFInvalidArgumentException exceptionWithClass: [self class] selector: _cmd]; #ifndef _WIN32 | | | 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 | if ((flags = parse_mode([mode UTF8String])) == -1) @throw [OFInvalidArgumentException exceptionWithClass: [self class] selector: _cmd]; #ifndef _WIN32 if ((fd = open([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], flags, DEFAULT_MODE)) == -1) #else if ((fd = _wopen([path UTF16String], flags, DEFAULT_MODE)) == -1) #endif @throw [OFOpenFileFailedException exceptionWithClass: [self class] |
︙ | ︙ |
Modified src/OFObject.m from [4e3a5a961f] to [f14f82d06a].
︙ | ︙ | |||
222 223 224 225 226 227 228 | return instance; } const char* _NSPrintForDebugger(id object) { return [[object description] | | | 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 | return instance; } const char* _NSPrintForDebugger(id object) { return [[object description] cStringWithEncoding: OF_STRING_ENCODING_NATIVE]; } /* References for static linking */ void _references_to_categories_of_OFObject(void) { _OFObject_Serialization_reference = 1; } |
︙ | ︙ |
Modified src/OFPlugin.m from [8af09a0477] to [929f009f47].
︙ | ︙ | |||
42 43 44 45 46 47 48 | of_plugin_handle_t handle; OFPlugin *(*initPlugin)(void); OFPlugin *plugin; path = [path stringByAppendingString: @PLUGIN_SUFFIX]; #ifndef _WIN32 | | | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | of_plugin_handle_t handle; OFPlugin *(*initPlugin)(void); OFPlugin *plugin; path = [path stringByAppendingString: @PLUGIN_SUFFIX]; #ifndef _WIN32 if ((handle = dlopen([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], RTLD_LAZY)) == NULL) #else if ((handle = LoadLibraryW([path UTF16String])) == NULL) #endif @throw [OFInitializationFailedException exceptionWithClass: self]; |
︙ | ︙ |
Modified src/OFProcess.m from [298fa3b559] to [8542470fa0].
︙ | ︙ | |||
127 128 129 130 131 132 133 | OFString **objects = [arguments objects]; size_t i, count = [arguments count]; char **argv; argv = [self allocMemoryWithSize: sizeof(char*) count: count + 2]; | | | | | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | OFString **objects = [arguments objects]; size_t i, count = [arguments count]; char **argv; argv = [self allocMemoryWithSize: sizeof(char*) count: count + 2]; argv[0] = (char*)[programName cStringWithEncoding: OF_STRING_ENCODING_NATIVE]; for (i = 0; i < count; i++) argv[i + 1] = (char*)[objects[i] cStringWithEncoding: OF_STRING_ENCODING_NATIVE]; argv[i + 1] = NULL; if (environment != nil) { #ifdef __MACH__ *_NSGetEnviron() = [self OF_environmentForDictionary: environment]; #else environ = [self OF_environmentForDictionary: environment]; #endif } close(readPipe[0]); close(writePipe[1]); dup2(writePipe[0], 0); dup2(readPipe[1], 1); execvp([program cStringWithEncoding: OF_STRING_ENCODING_NATIVE], argv); @throw [OFInitializationFailedException exceptionWithClass: [self class]]; case -1: @throw [OFInitializationFailedException exceptionWithClass: [self class]]; |
︙ | ︙ | |||
298 299 300 301 302 303 304 | OFString *key; OFString *object; size_t keyLen, objectLen; key = [keyEnumerator nextObject]; object = [objectEnumerator nextObject]; | | | | | | 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 | OFString *key; OFString *object; size_t keyLen, objectLen; key = [keyEnumerator nextObject]; object = [objectEnumerator nextObject]; keyLen = [key cStringLengthWithEncoding: OF_STRING_ENCODING_NATIVE]; objectLen = [object cStringLengthWithEncoding: OF_STRING_ENCODING_NATIVE]; envp[i] = [self allocMemoryWithSize: keyLen + objectLen + 2]; memcpy(envp[i], [key cStringWithEncoding: OF_STRING_ENCODING_NATIVE], keyLen); envp[i][keyLen] = '='; memcpy(envp[i] + keyLen + 1, [object cStringWithEncoding: OF_STRING_ENCODING_NATIVE], objectLen); envp[i][keyLen + objectLen + 1] = '\0'; } envp[i] = NULL; return envp; |
︙ | ︙ |
Modified src/OFStream.m from [cd06b3b006] to [c8e036b974].
︙ | ︙ | |||
769 770 771 772 773 774 775 | encoding: (of_string_encoding_t)encoding { const char *delimiterCString; size_t i, j, delimiterLength, pageSize, bufferLength, retLength; char *retCString, *buffer, *newCache; OFString *ret; | | | | 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 | encoding: (of_string_encoding_t)encoding { const char *delimiterCString; size_t i, j, delimiterLength, pageSize, bufferLength, retLength; char *retCString, *buffer, *newCache; OFString *ret; delimiterCString = [delimiter cStringWithEncoding: encoding]; delimiterLength = [delimiter cStringLengthWithEncoding: encoding]; j = 0; if (delimiterLength == 0) @throw [OFInvalidArgumentException exceptionWithClass: [self class] selector: _cmd]; |
︙ | ︙ | |||
1374 1375 1376 1377 1378 1379 1380 | return [self writeString: string usingEncoding: OF_STRING_ENCODING_UTF_8]; } - (size_t)writeString: (OFString*)string usingEncoding: (of_string_encoding_t)encoding { | | | | | | 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 | return [self writeString: string usingEncoding: OF_STRING_ENCODING_UTF_8]; } - (size_t)writeString: (OFString*)string usingEncoding: (of_string_encoding_t)encoding { size_t length = [string cStringLengthWithEncoding: encoding]; [self writeBuffer: [string cStringWithEncoding: encoding] length: length]; return length; } - (size_t)writeLine: (OFString*)string { return [self writeLine: string usingEncoding: OF_STRING_ENCODING_UTF_8]; } - (size_t)writeLine: (OFString*)string usingEncoding: (of_string_encoding_t)encoding { size_t stringLength = [string cStringLengthWithEncoding: encoding]; char *buffer; buffer = [self allocMemoryWithSize: stringLength + 1]; @try { memcpy(buffer, [string cStringWithEncoding: encoding], stringLength); buffer[stringLength] = '\n'; [self writeBuffer: buffer length: stringLength + 1]; } @finally { [self freeMemory: buffer]; |
︙ | ︙ |
Modified src/OFString.h from [da0e74ec07] to [5446e12756].
︙ | ︙ | |||
561 562 563 564 565 566 567 | * The result is valid until the autorelease pool is released. If you want to * use the result outside the scope of the current autorelease pool, you have to * copy it. * * @param encoding The encoding for the C string * @return The OFString as a C string in the specified encoding */ | | | 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 | * The result is valid until the autorelease pool is released. If you want to * use the result outside the scope of the current autorelease pool, you have to * copy it. * * @param encoding The encoding for the C string * @return The OFString as a C string in the specified encoding */ - (const char*)cStringWithEncoding: (of_string_encoding_t)encoding OF_RETURNS_INNER_POINTER; /*! * @brief Returns the OFString as a UTF-8 encoded C string. * * The result is valid until the autorelease pool is released. If you want to * use the result outside the scope of the current autorelease pool, you have to |
︙ | ︙ | |||
589 590 591 592 593 594 595 | /*! * @brief Returns the number of bytes the string needs in the specified * encoding. * * @param encoding The encoding for the string * @return The number of bytes the string needs in the specified encoding. */ | | | 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 | /*! * @brief Returns the number of bytes the string needs in the specified * encoding. * * @param encoding The encoding for the string * @return The number of bytes the string needs in the specified encoding. */ - (size_t)cStringLengthWithEncoding: (of_string_encoding_t)encoding; /*! * @brief Returns the number of bytes the string needs in UTF-8 encoding. * * @return The number of bytes the string needs in UTF-8 encoding. */ - (size_t)UTF8StringLength; |
︙ | ︙ |
Modified src/OFString.m from [5a8a220443] to [cb1b20524f].
︙ | ︙ | |||
851 852 853 854 855 856 857 | { char *tmp; struct stat st; @try { OFFile *file; | | | 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 | { char *tmp; struct stat st; @try { OFFile *file; if (stat([path cStringWithEncoding: OF_STRING_ENCODING_NATIVE], &st) == -1) @throw [OFOpenFileFailedException exceptionWithClass: [self class] path: path mode: @"rb"]; if (st.st_size > SIZE_MAX) |
︙ | ︙ | |||
985 986 987 988 989 990 991 | [self release]; @throw e; } return self; } | | | 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 | [self release]; @throw e; } return self; } - (const char*)cStringWithEncoding: (of_string_encoding_t)encoding { const of_unichar_t *characters = [self characters]; size_t i, length = [self length]; OFObject *object = [[[OFObject alloc] init] autorelease]; char *cString; switch (encoding) { |
︙ | ︙ | |||
1086 1087 1088 1089 1090 1091 1092 | } return cString; } - (const char*)UTF8String { | | | | 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 | } return cString; } - (const char*)UTF8String { return [self cStringWithEncoding: OF_STRING_ENCODING_UTF_8]; } - (size_t)length { [self doesNotRecognizeSelector: _cmd]; abort(); } - (size_t)cStringLengthWithEncoding: (of_string_encoding_t)encoding { switch (encoding) { case OF_STRING_ENCODING_UTF_8:; const of_unichar_t *characters; size_t i, length, UTF8StringLength = 0; characters = [self characters]; |
︙ | ︙ | |||
1130 1131 1132 1133 1134 1135 1136 | exceptionWithClass: [self class] selector: _cmd]; } } - (size_t)UTF8StringLength { | | | 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 | exceptionWithClass: [self class] selector: _cmd]; } } - (size_t)UTF8StringLength { return [self cStringLengthWithEncoding: OF_STRING_ENCODING_UTF_8]; } - (of_unichar_t)characterAtIndex: (size_t)index { [self doesNotRecognizeSelector: _cmd]; abort(); } |
︙ | ︙ |
Modified src/OFString_UTF8.m from [97c02a6c42] to [c16c78a6d7].
︙ | ︙ | |||
772 773 774 775 776 777 778 | { if (s != NULL && s->freeWhenDone != NULL) free(s->freeWhenDone); [super dealloc]; } | | | | | | 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 | { if (s != NULL && s->freeWhenDone != NULL) free(s->freeWhenDone); [super dealloc]; } - (const char*)cStringWithEncoding: (of_string_encoding_t)encoding { switch (encoding) { case OF_STRING_ENCODING_UTF_8: return s->cString; case OF_STRING_ENCODING_ASCII: if (s->isUTF8) @throw [OFInvalidEncodingException exceptionWithClass: [self class]]; return s->cString; default: return [super cStringWithEncoding: encoding]; } } - (const char*)UTF8String { return s->cString; } - (size_t)length { return s->length; } - (size_t)cStringLengthWithEncoding: (of_string_encoding_t)encoding { switch (encoding) { case OF_STRING_ENCODING_UTF_8: case OF_STRING_ENCODING_ASCII: return s->cStringLength; default: return [super cStringLengthWithEncoding: encoding]; } } - (size_t)UTF8StringLength { return s->cStringLength; } |
︙ | ︙ |
Modified src/OFTCPSocket.m from [26659060bf] to [4724c73932].
︙ | ︙ | |||
309 310 311 312 313 314 315 | memset(&hints, 0, sizeof(struct addrinfo)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_NUMERICSERV | AI_ADDRCONFIG; snprintf(portCString, 7, "%" PRIu16, port); | | | 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 | memset(&hints, 0, sizeof(struct addrinfo)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_NUMERICSERV | AI_ADDRCONFIG; snprintf(portCString, 7, "%" PRIu16, port); if (getaddrinfo([host cStringWithEncoding: OF_STRING_ENCODING_NATIVE], portCString, &hints, &res0)) @throw [OFAddressTranslationFailedException exceptionWithClass: [self class] socket: self host: host]; for (res = res0; res != NULL; res = res->ai_next) { |
︙ | ︙ | |||
343 344 345 346 347 348 349 | # ifdef OF_THREADS OFDataArray *addrlist; addrlist = [[OFDataArray alloc] initWithItemSize: sizeof(char**)]; [mutex lock]; # endif | | | 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 | # ifdef OF_THREADS OFDataArray *addrlist; addrlist = [[OFDataArray alloc] initWithItemSize: sizeof(char**)]; [mutex lock]; # endif if ((he = gethostbyname([host cStringWithEncoding: OF_STRING_ENCODING_NATIVE])) == NULL) { # ifdef OF_THREADS [addrlist release]; [mutex unlock]; # endif @throw [OFAddressTranslationFailedException exceptionWithClass: [self class] |
︙ | ︙ | |||
488 489 490 491 492 493 494 | memset(&hints, 0, sizeof(struct addrinfo)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_NUMERICSERV | AI_ADDRCONFIG | AI_PASSIVE; snprintf(portCString, 7, "%" PRIu16, port); | | | 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 | memset(&hints, 0, sizeof(struct addrinfo)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_NUMERICSERV | AI_ADDRCONFIG | AI_PASSIVE; snprintf(portCString, 7, "%" PRIu16, port); if (getaddrinfo([host cStringWithEncoding: OF_STRING_ENCODING_NATIVE], portCString, &hints, &res)) @throw [OFAddressTranslationFailedException exceptionWithClass: [self class] socket: self host: host]; if ((sock = socket(res->ai_family, SOCK_STREAM, 0)) == INVALID_SOCKET) |
︙ | ︙ | |||
525 526 527 528 529 530 531 | #else struct hostent *he; # ifdef OF_THREADS [mutex lock]; # endif | | | 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 | #else struct hostent *he; # ifdef OF_THREADS [mutex lock]; # endif if ((he = gethostbyname([host cStringWithEncoding: OF_STRING_ENCODING_NATIVE])) == NULL) { # ifdef OF_THREADS [mutex unlock]; # endif @throw [OFAddressTranslationFailedException exceptionWithClass: [self class] socket: self |
︙ | ︙ |
Modified src/OFXMLElement+Serialization.m from [bbbb87a63f] to [ccf852396a].
︙ | ︙ | |||
31 32 33 34 35 36 37 | @implementation OFXMLElement (Serialization) - (id)objectByDeserializing { void *pool = objc_autoreleasePoolPush(); Class class; id object; | | | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | @implementation OFXMLElement (Serialization) - (id)objectByDeserializing { void *pool = objc_autoreleasePoolPush(); Class class; id object; if ((class = objc_getClass([name cStringWithEncoding: OF_STRING_ENCODING_ASCII])) == Nil) @throw [OFInvalidArgumentException exceptionWithClass: [self class]]; if (![class conformsToProtocol: @protocol(OFSerialization)]) @throw [OFInvalidArgumentException exceptionWithClass: [self class]]; |
︙ | ︙ |