Revision: 3004
http://skim-app.svn.sourceforge.net/skim-app/?rev=3004&view=rev
Author: hofman
Date: 2007-10-01 06:32:57 -0700 (Mon, 01 Oct 2007)
Log Message:
-----------
Remove support for "larger" condition template tag, as this leads to ambiguous
tags.
Modified Paths:
--------------
trunk/SKTemplateParser.m
Modified: trunk/SKTemplateParser.m
===================================================================
--- trunk/SKTemplateParser.m 2007-10-01 13:07:20 UTC (rev 3003)
+++ trunk/SKTemplateParser.m 2007-10-01 13:32:57 UTC (rev 3004)
@@ -50,8 +50,6 @@
#define CONDITIONTAG_CONTAIN @"~"
#define CONDITIONTAG_SMALLER @"<"
#define CONDITIONTAG_SMALLER_OR_EQUAL @"<="
-#define CONDITIONTAG_LARGER @">"
-#define CONDITIONTAG_LARGER_OR_EQUAL @">="
/*
single tag: <$key/>
@@ -67,10 +65,6 @@
or: <$key<value?> <?$key?> </$key?>
or: <$key<=value?> </$key?>
or: <$key<=value?> <?$key?> </$key?>
- or: <$key>value?> </$key?>
- or: <$key>value?> <?$key?> </$key?>
- or: <$key>=value?> </$key?>
- or: <$key>=value?> <?$key?> </$key?>
*/
enum {
@@ -79,8 +73,6 @@
SKConditionTagMatchContain,
SKConditionTagMatchSmaller,
SKConditionTagMatchSmallerOrEqual,
- SKConditionTagMatchLarger,
- SKConditionTagMatchLargerOrEqual
};
@implementation SKTemplateParser
@@ -155,8 +147,6 @@
static NSMutableDictionary *containConditionDict = nil;
static NSMutableDictionary *smallerConditionDict = nil;
static NSMutableDictionary *smallerOrEqualConditionDict = nil;
-static NSMutableDictionary *largerConditionDict = nil;
-static NSMutableDictionary *largerOrEqualConditionDict = nil;
static inline NSString *compareConditionTagWithTag(NSString *tag, int
matchType){
NSString *altTag = nil;
switch (matchType) {
@@ -196,24 +186,6 @@
[smallerOrEqualConditionDict setObject:altTag forKey:tag];
}
break;
- case SKConditionTagMatchLarger:
- if(nil == largerConditionDict)
- largerConditionDict = [[NSMutableDictionary alloc] init];
- altTag = [largerConditionDict objectForKey:tag];
- if(nil == altTag){
- altTag = [NSString stringWithFormat:@"[EMAIL PROTECTED]@%@",
SEPTAG_OPEN_DELIM, tag, CONDITIONTAG_LARGER];
- [largerConditionDict setObject:altTag forKey:tag];
- }
- break;
- case SKConditionTagMatchLargerOrEqual:
- if(nil == largerOrEqualConditionDict)
- largerOrEqualConditionDict = [[NSMutableDictionary alloc]
init];
- altTag = [largerOrEqualConditionDict objectForKey:tag];
- if(nil == altTag){
- altTag = [NSString stringWithFormat:@"[EMAIL PROTECTED]@%@",
SEPTAG_OPEN_DELIM, tag, CONDITIONTAG_LARGER_OR_EQUAL];
- [largerOrEqualConditionDict setObject:altTag forKey:tag];
- }
- break;
}
return altTag;
}
@@ -352,14 +324,6 @@
if([scanner scanUpToString:CONDITIONTAG_CLOSE_DELIM
intoString:&matchString] == NO)
matchString = @"";
matchType = SKConditionTagMatchSmaller;
- } else if ([scanner scanString:CONDITIONTAG_LARGER_OR_EQUAL
intoString:nil]) {
- if([scanner scanUpToString:CONDITIONTAG_CLOSE_DELIM
intoString:&matchString] == NO)
- matchString = @"";
- matchType = SKConditionTagMatchLargerOrEqual;
- } else if ([scanner scanString:CONDITIONTAG_LARGER
intoString:nil]) {
- if([scanner scanUpToString:CONDITIONTAG_CLOSE_DELIM
intoString:&matchString] == NO)
- matchString = @"";
- matchType = SKConditionTagMatchLarger;
}
if ([scanner scanString:CONDITIONTAG_CLOSE_DELIM
intoString:nil]) {
@@ -414,26 +378,19 @@
subTemplate = nil;
for (i = 0; i < count; i++) {
matchString = [matchStrings objectAtIndex:i];
- int comparison = [[keyValue stringDescription]
localizedCaseInsensitiveNumericCompare:matchString];
switch (matchType) {
- case SKConditionTagMatchEqual:
- isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : comparison ==
NSOrderedSame;
+ case SKConditionTagMatchEqual:
+ isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue
stringDescription] caseInsensitiveCompare:matchString] == NSOrderedSame;
break;
case SKConditionTagMatchContain:
isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue
stringDescription] rangeOfString:matchString
options:NSCaseInsensitiveSearch].location != NSNotFound;
break;
case SKConditionTagMatchSmaller:
- isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : comparison ==
NSOrderedAscending;
+ isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue
stringDescription] localizedCaseInsensitiveNumericCompare:matchString] ==
NSOrderedAscending;
break;
case SKConditionTagMatchSmallerOrEqual:
- isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : comparison !=
NSOrderedDescending;
+ isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue
stringDescription] localizedCaseInsensitiveNumericCompare:matchString] !=
NSOrderedDescending;
break;
- case SKConditionTagMatchLarger:
- isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : comparison ==
NSOrderedDescending;
- break;
- case SKConditionTagMatchLargerOrEqual:
- isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : comparison !=
NSOrderedAscending;
- break;
default:
isMatch = [keyValue isNotEmpty];
break;
@@ -593,14 +550,6 @@
if([scanner scanUpToString:CONDITIONTAG_CLOSE_DELIM
intoString:&matchString] == NO)
matchString = @"";
matchType = SKConditionTagMatchSmaller;
- } else if ([scanner scanString:CONDITIONTAG_LARGER_OR_EQUAL
intoString:nil]) {
- if([scanner scanUpToString:CONDITIONTAG_CLOSE_DELIM
intoString:&matchString] == NO)
- matchString = @"";
- matchType = SKConditionTagMatchLargerOrEqual;
- } else if ([scanner scanString:CONDITIONTAG_LARGER
intoString:nil]) {
- if([scanner scanUpToString:CONDITIONTAG_CLOSE_DELIM
intoString:&matchString] == NO)
- matchString = @"";
- matchType = SKConditionTagMatchLarger;
}
if ([scanner scanString:CONDITIONTAG_CLOSE_DELIM
intoString:nil]) {
@@ -658,26 +607,19 @@
subTemplate = nil;
for (i = 0; i < count; i++) {
matchString = [matchStrings objectAtIndex:i];
- int comparison = [[keyValue stringDescription]
localizedCaseInsensitiveNumericCompare:matchString];
switch (matchType) {
- case SKConditionTagMatchEqual:
- isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : comparison ==
NSOrderedSame;
+ case SKConditionTagMatchEqual:
+ isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue
stringDescription] caseInsensitiveCompare:matchString] == NSOrderedSame;
break;
case SKConditionTagMatchContain:
isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue
stringDescription] rangeOfString:matchString
options:NSCaseInsensitiveSearch].location != NSNotFound;
break;
case SKConditionTagMatchSmaller:
- isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : comparison ==
NSOrderedAscending;
+ isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue
stringDescription] localizedCaseInsensitiveNumericCompare:matchString] ==
NSOrderedAscending;
break;
case SKConditionTagMatchSmallerOrEqual:
- isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : comparison !=
NSOrderedDescending;
+ isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue
stringDescription] localizedCaseInsensitiveNumericCompare:matchString] !=
NSOrderedDescending;
break;
- case SKConditionTagMatchLarger:
- isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : comparison ==
NSOrderedDescending;
- break;
- case SKConditionTagMatchLargerOrEqual:
- isMatch = [matchString
isEqualToString:@""] ? NO == [keyValue isNotEmpty] : comparison !=
NSOrderedAscending;
- break;
default:
isMatch = [keyValue isNotEmpty];
break;
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: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit