issue 424

This commit is contained in:
rfm 2024-07-09 17:03:39 +01:00
parent 58c4bbcaab
commit b91ff38636
2 changed files with 12 additions and 9 deletions

View file

@ -1,3 +1,9 @@
2024-07-09 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSString.m: Implement regular expression search in replace
methods (github issue 424) by using -rangeOfString:options:range: in
place of obsolete optimisation function.
2024-07-09 Richard Frith-Macdonald <rfm@gnu.org>
* config/codeset.m4:

View file

@ -6726,7 +6726,6 @@ static NSFileManager *fm = nil;
{
NSRange range;
unsigned int count = 0;
GSRSFunc func;
if ([replace isKindOfClass: NSStringClass] == NO)
{
@ -6743,8 +6742,9 @@ static NSFileManager *fm = nil;
[NSException raise: NSInvalidArgumentException
format: @"%@ bad search range", NSStringFromSelector(_cmd)];
}
func = GSPrivateRangeOfString(self, replace);
range = (*func)(self, replace, opts, searchRange);
range = [self rangeOfString: replace
options: opts
range: searchRange];
if (range.length > 0)
{
@ -6770,12 +6770,9 @@ static NSFileManager *fm = nil;
searchRange.location = range.location + byLen;
searchRange.length = newEnd - searchRange.location;
}
/* We replaced something and now need to scan again.
* As we modified the receiver, we must refresh the
* method implementation for searching.
*/
func = GSPrivateRangeOfString(self, replace);
range = (*func)(self, replace, opts, searchRange);
range = [self rangeOfString: replace
options: opts
range: searchRange];
}
while (range.length > 0);
}