Revision: 3046
http://skim-app.svn.sourceforge.net/skim-app/?rev=3046&view=rev
Author: hofman
Date: 2007-10-17 05:12:09 -0700 (Wed, 17 Oct 2007)
Log Message:
-----------
Fix leading empty line after a template tag, and include full LR+CF in trailing
empty line. Whitespace without a newline should not be ignored inside a tag.
Modified Paths:
--------------
trunk/NSString_SKExtensions.h
trunk/NSString_SKExtensions.m
Modified: trunk/NSString_SKExtensions.h
===================================================================
--- trunk/NSString_SKExtensions.h 2007-10-15 19:59:28 UTC (rev 3045)
+++ trunk/NSString_SKExtensions.h 2007-10-17 12:12:09 UTC (rev 3046)
@@ -56,7 +56,9 @@
- (NSString *)stringByEscapingParenthesis;
- (NSRange)rangeOfLeadingEmptyLine;
+- (NSRange)rangeOfLeadingEmptyLine:(BOOL *)onlyWhite;
- (NSRange)rangeOfLeadingEmptyLineInRange:(NSRange)range;
+- (NSRange)rangeOfLeadingEmptyLine:(BOOL *)onlyWhite range:(NSRange)range;
- (NSRange)rangeOfTrailingEmptyLine;
- (NSRange)rangeOfTrailingEmptyLine:(BOOL *)onlyWhite;
- (NSRange)rangeOfTrailingEmptyLineInRange:(NSRange)range;
Modified: trunk/NSString_SKExtensions.m
===================================================================
--- trunk/NSString_SKExtensions.m 2007-10-15 19:59:28 UTC (rev 3045)
+++ trunk/NSString_SKExtensions.m 2007-10-17 12:12:09 UTC (rev 3046)
@@ -230,14 +230,25 @@
// whitespace at the beginning of the string up to the end or until (and
including) a newline
- (NSRange)rangeOfLeadingEmptyLine {
- return [self rangeOfLeadingEmptyLineInRange:NSMakeRange(0, [self length])];
+ return [self rangeOfLeadingEmptyLine:NULL];
}
+- (NSRange)rangeOfLeadingEmptyLine:(BOOL *)onlyWhite {
+ return [self rangeOfLeadingEmptyLine:onlyWhite range:NSMakeRange(0, [self
length])];
+}
+
- (NSRange)rangeOfLeadingEmptyLineInRange:(NSRange)range {
+ return [self rangeOfLeadingEmptyLine:NULL range:range];
+}
+
+- (NSRange)rangeOfLeadingEmptyLine:(BOOL *)onlyWhite range:(NSRange)range {
NSRange firstCharRange = [self rangeOfCharacterFromSet:[NSCharacterSet
nonWhitespaceCharacterSet] options:0 range:range];
NSRange wsRange = NSMakeRange(NSNotFound, 0);
unsigned int start = range.location;
- if (firstCharRange.location != NSNotFound) {
+ if (firstCharRange.location == NSNotFound) {
+ if (onlyWhite)
+ *onlyWhite = YES;
+ } else {
unichar firstChar = [self characterAtIndex:firstCharRange.location];
unsigned int rangeEnd = NSMaxRange(firstCharRange);
if([[NSCharacterSet newlineCharacterSet] characterIsMember:firstChar])
{
@@ -246,6 +257,8 @@
else
wsRange = NSMakeRange(start, rangeEnd - start);
}
+ if (onlyWhite)
+ *onlyWhite = NO;
}
return wsRange;
}
@@ -272,8 +285,12 @@
} else {
unichar lastChar = [self characterAtIndex:lastCharRange.location];
unsigned int rangeEnd = NSMaxRange(lastCharRange);
- if (rangeEnd < end && [[NSCharacterSet newlineCharacterSet]
characterIsMember:lastChar])
- wsRange = NSMakeRange(rangeEnd, end - rangeEnd);
+ if (rangeEnd < end && [[NSCharacterSet newlineCharacterSet]
characterIsMember:lastChar]) {
+ if (lastChar == '\n' && rangeEnd - 1 > range.location && [self
characterAtIndex:rangeEnd - 2] == '\r')
+ wsRange = NSMakeRange(rangeEnd - 1, end - rangeEnd + 1);
+ else
+ wsRange = NSMakeRange(rangeEnd, end - rangeEnd);
+ }
if (onlyWhite)
*onlyWhite = NO;
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit