mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-31 18:50:48 +00:00
Corrected [setAlignment:range:] and [nextWordFromIndex:forward:]
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@6601 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
79810ffee5
commit
4613b1db24
1 changed files with 23 additions and 8 deletions
|
@ -278,29 +278,40 @@ paraBreakCSet()
|
||||||
options: NSLiteralSearch
|
options: NSLiteralSearch
|
||||||
range: range];
|
range: range];
|
||||||
if (range.length == 0)
|
if (range.length == 0)
|
||||||
return location;
|
return length;
|
||||||
range = NSMakeRange(range.location, length - range.location);
|
range = NSMakeRange(range.location, length - range.location);
|
||||||
range = [str rangeOfCharacterFromSet: wordCSet()
|
range = [str rangeOfCharacterFromSet: wordCSet()
|
||||||
options: NSLiteralSearch
|
options: NSLiteralSearch
|
||||||
range: range];
|
range: range];
|
||||||
if (range.length == 0)
|
if (range.length == 0)
|
||||||
return location;
|
return length;
|
||||||
return range.location;
|
return range.location;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
BOOL inWord = [wordCSet() characterIsMember: [str characterAtIndex: location]];
|
||||||
|
|
||||||
range = NSMakeRange(0, location);
|
range = NSMakeRange(0, location);
|
||||||
|
if (!inWord)
|
||||||
|
{
|
||||||
|
range = [str rangeOfCharacterFromSet: wordCSet()
|
||||||
|
options: NSBackwardsSearch|NSLiteralSearch
|
||||||
|
range: range];
|
||||||
|
if (range.length == 0)
|
||||||
|
return 0;
|
||||||
|
range = NSMakeRange(0, range.location);
|
||||||
|
}
|
||||||
range = [str rangeOfCharacterFromSet: wordBreakCSet()
|
range = [str rangeOfCharacterFromSet: wordBreakCSet()
|
||||||
options: NSBackwardsSearch|NSLiteralSearch
|
options: NSBackwardsSearch|NSLiteralSearch
|
||||||
range: range];
|
range: range];
|
||||||
if (range.length == 0)
|
if (range.length == 0)
|
||||||
return location;
|
return 0;
|
||||||
range = NSMakeRange(0, range.location);
|
range = NSMakeRange(range.location, location - range.location);
|
||||||
range = [str rangeOfCharacterFromSet: wordCSet()
|
range = [str rangeOfCharacterFromSet: wordCSet()
|
||||||
options: NSLiteralSearch
|
options: NSLiteralSearch
|
||||||
range: range];
|
range: range];
|
||||||
if (range.length == 0)
|
if (range.length == 0)
|
||||||
return location;
|
return 0;
|
||||||
return range.location;
|
return range.location;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -540,7 +551,7 @@ documentAttributes: (NSDictionary**)dict
|
||||||
id value;
|
id value;
|
||||||
unsigned loc = range.location;
|
unsigned loc = range.location;
|
||||||
NSRange effRange;
|
NSRange effRange;
|
||||||
|
|
||||||
if (range.location < 0 || NSMaxRange(range) > [self length])
|
if (range.location < 0 || NSMaxRange(range) > [self length])
|
||||||
{
|
{
|
||||||
[NSException raise: NSRangeException
|
[NSException raise: NSRangeException
|
||||||
|
@ -555,6 +566,10 @@ documentAttributes: (NSDictionary**)dict
|
||||||
|
|
||||||
if (value == nil)
|
if (value == nil)
|
||||||
value = [NSMutableParagraphStyle defaultParagraphStyle];
|
value = [NSMutableParagraphStyle defaultParagraphStyle];
|
||||||
|
else if (!NSLocationInRange(effRange.location, range) ||
|
||||||
|
!NSLocationInRange(NSMaxRange(effRange)-1, range))
|
||||||
|
// the range is not fully enclosed in the range that is changed
|
||||||
|
value = [value mutableCopy];
|
||||||
|
|
||||||
[value setAlignment: alignment];
|
[value setAlignment: alignment];
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue