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

Reply via email to