︙ | | |
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
|
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
|
-
+
|
#endif
- (void)setCharacter: (of_unichar_t)character atIndex: (size_t)idx
{
void *pool = objc_autoreleasePoolPush();
OFString *string =
[OFString stringWithCharacters: &character length: 1];
[self replaceCharactersInRange: of_range(idx, 1) withString: string];
[self replaceCharactersInRange: OFMakeRange(idx, 1) withString: string];
objc_autoreleasePoolPop(pool);
}
- (void)appendString: (OFString *)string
{
[self insertString: string atIndex: self.length];
}
|
︙ | | |
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
458
459
460
461
462
463
464
465
466
467
|
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
458
459
460
461
462
463
464
465
466
467
|
-
+
-
+
-
+
-
+
-
+
|
{
convert(self, of_ascii_toupper, of_ascii_tolower);
}
#endif
- (void)insertString: (OFString *)string atIndex: (size_t)idx
{
[self replaceCharactersInRange: of_range(idx, 0) withString: string];
[self replaceCharactersInRange: OFMakeRange(idx, 0) withString: string];
}
- (void)deleteCharactersInRange: (of_range_t)range
- (void)deleteCharactersInRange: (OFRange)range
{
[self replaceCharactersInRange: range withString: @""];
}
- (void)replaceCharactersInRange: (of_range_t)range
- (void)replaceCharactersInRange: (OFRange)range
withString: (OFString *)replacement
{
OF_UNRECOGNIZED_SELECTOR
}
- (void)replaceOccurrencesOfString: (OFString *)string
withString: (OFString *)replacement
{
[self replaceOccurrencesOfString: string
withString: replacement
options: 0
range: of_range(0, self.length)];
range: OFMakeRange(0, self.length)];
}
- (void)replaceOccurrencesOfString: (OFString *)string
withString: (OFString *)replacement
options: (int)options
range: (of_range_t)range
range: (OFRange)range
{
void *pool = objc_autoreleasePoolPush(), *pool2;
const of_unichar_t *characters;
const of_unichar_t *searchCharacters = string.characters;
size_t searchLength = string.length;
size_t replacementLength = replacement.length;
|
︙ | | |
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
|
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
|
-
+
|
characters = self.characters;
for (size_t i = range.location; i <= range.length - searchLength; i++) {
if (memcmp(characters + i, searchCharacters,
searchLength * sizeof(of_unichar_t)) != 0)
continue;
[self replaceCharactersInRange: of_range(i, searchLength)
[self replaceCharactersInRange: OFMakeRange(i, searchLength)
withString: replacement];
range.length -= searchLength;
range.length += replacementLength;
i += replacementLength - 1;
|
︙ | | |
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
|
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
|
-
+
|
if (!of_ascii_isspace(c))
break;
}
objc_autoreleasePoolPop(pool);
[self deleteCharactersInRange: of_range(0, i)];
[self deleteCharactersInRange: OFMakeRange(0, i)];
}
- (void)deleteTrailingWhitespaces
{
void *pool;
const of_unichar_t *characters, *p;
size_t length, d;
|
︙ | | |
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
|
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
|
-
+
|
break;
d++;
}
objc_autoreleasePoolPop(pool);
[self deleteCharactersInRange: of_range(length - d, d)];
[self deleteCharactersInRange: OFMakeRange(length - d, d)];
}
- (void)deleteEnclosingWhitespaces
{
[self deleteLeadingWhitespaces];
[self deleteTrailingWhitespaces];
}
|
︙ | | |