mirror of
https://github.com/gnustep/libs-base.git
synced 2025-06-01 09:02:01 +00:00
* Source/Additions/GSCategories.m ([NSMutableString
-replaceString:withString:]): Rewrite to work again. [tmp replaceString:@"&" withString:@"&"]; Did NOT work. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20466 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
531dd954e2
commit
6283d20653
2 changed files with 45 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2004-12-18 David Wetzel <dave@turbocat.de>
|
||||||
|
|
||||||
|
* Source/Additions/GSCategories.m ([NSMutableString
|
||||||
|
-replaceString:withString:]): Rewrite to work again.
|
||||||
|
[tmp replaceString:@"&" withString:@"&"]; Did NOT work.
|
||||||
|
|
||||||
2004-12-12 Adam Fedor <fedor@gnu.org>
|
2004-12-12 Adam Fedor <fedor@gnu.org>
|
||||||
|
|
||||||
* Changes so additions compiles on older Mac OS X 10.1.5
|
* Changes so additions compiles on older Mac OS X 10.1.5
|
||||||
|
|
|
@ -1066,15 +1066,50 @@ static void MD5Transform (unsigned long buf[4], unsigned long const in[16])
|
||||||
* the receiver.<br />
|
* the receiver.<br />
|
||||||
* Calls - replaceOccurrencesOfString:withString:options:range: passing
|
* Calls - replaceOccurrencesOfString:withString:options:range: passing
|
||||||
* zero for the options and a range from 0 with the length of the receiver.
|
* zero for the options and a range from 0 with the length of the receiver.
|
||||||
|
*
|
||||||
|
* Note that is has to work for [tmp replaceString:@"&" withString:@"&"];
|
||||||
*/
|
*/
|
||||||
- (void) replaceString: (NSString*)replace
|
- (void) replaceString: (NSString*)replace
|
||||||
withString: (NSString*)by
|
withString: (NSString*)by
|
||||||
{
|
{
|
||||||
NSRange range = [self rangeOfString: replace];
|
NSRange range;
|
||||||
|
unsigned int count = 0;
|
||||||
|
unsigned int newEnd;
|
||||||
|
NSRange searchRange;
|
||||||
|
|
||||||
while (range.location != NSNotFound) {
|
if (replace == nil)
|
||||||
[self replaceCharactersInRange: range withString: by];
|
{
|
||||||
range = [self rangeOfString: replace];
|
[NSException raise: NSInvalidArgumentException
|
||||||
|
format: @"%@ nil search string", NSStringFromSelector(_cmd)];
|
||||||
|
}
|
||||||
|
if (by == nil)
|
||||||
|
{
|
||||||
|
[NSException raise: NSInvalidArgumentException
|
||||||
|
format: @"%@ nil replace string", NSStringFromSelector(_cmd)];
|
||||||
|
}
|
||||||
|
|
||||||
|
searchRange = NSMakeRange(0, [self length]);
|
||||||
|
range = [self rangeOfString: replace options: 0 range: searchRange];
|
||||||
|
|
||||||
|
if (range.length > 0)
|
||||||
|
{
|
||||||
|
unsigned byLen = [by length];
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
[self replaceCharactersInRange: range
|
||||||
|
withString: by];
|
||||||
|
|
||||||
|
newEnd = NSMaxRange(searchRange) + byLen - range.length;
|
||||||
|
searchRange.location = range.location + byLen;
|
||||||
|
searchRange.length = newEnd - searchRange.location;
|
||||||
|
|
||||||
|
range = [self rangeOfString: replace
|
||||||
|
options: 0
|
||||||
|
range: searchRange];
|
||||||
|
}
|
||||||
|
while (range.length > 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue