591
592
593
594
595
596
597
598
599
600
601
602
603
604
|
- (void)replaceCharactersInRange: (of_range_t)range
withString: (OFString*)replacement
{
size_t start = range.location;
size_t end = range.location + range.length;
size_t newCStringLength, newLength;
if (range.length > SIZE_MAX - range.location || end > _s->length)
@throw [OFOutOfRangeException exception];
newLength = _s->length - range.length + [replacement length];
if (_s->isUTF8) {
start = of_string_utf8_get_position(_s->cString, start,
|
>
>
>
|
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
|
- (void)replaceCharactersInRange: (of_range_t)range
withString: (OFString*)replacement
{
size_t start = range.location;
size_t end = range.location + range.length;
size_t newCStringLength, newLength;
if (replacement == nil)
@throw [OFInvalidArgumentException exception];
if (range.length > SIZE_MAX - range.location || end > _s->length)
@throw [OFOutOfRangeException exception];
newLength = _s->length - range.length + [replacement length];
if (_s->isUTF8) {
start = of_string_utf8_get_position(_s->cString, start,
|
649
650
651
652
653
654
655
656
657
658
659
660
661
662
|
const char *searchString = [string UTF8String];
const char *replacementString = [replacement UTF8String];
size_t searchLength = [string UTF8StringLength];
size_t replacementLength = [replacement UTF8StringLength];
size_t last, newCStringLength, newLength;
char *newCString;
if (range.length > SIZE_MAX - range.location ||
range.location + range.length > [self length])
@throw [OFOutOfRangeException exception];
if (_s->isUTF8) {
range.location = of_string_utf8_get_position(_s->cString,
range.location, _s->cStringLength);
|
>
>
>
|
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
|
const char *searchString = [string UTF8String];
const char *replacementString = [replacement UTF8String];
size_t searchLength = [string UTF8StringLength];
size_t replacementLength = [replacement UTF8StringLength];
size_t last, newCStringLength, newLength;
char *newCString;
if (string == nil || replacement == nil)
@throw [OFInvalidArgumentException exception];
if (range.length > SIZE_MAX - range.location ||
range.location + range.length > [self length])
@throw [OFOutOfRangeException exception];
if (_s->isUTF8) {
range.location = of_string_utf8_get_position(_s->cString,
range.location, _s->cStringLength);
|