Revision: 14002
          http://sourceforge.net/p/skim-app/code/14002
Author:   hofman
Date:     2023-12-28 15:32:58 +0000 (Thu, 28 Dec 2023)
Log Message:
-----------
remember last tag type rather than getting it again

Modified Paths:
--------------
    trunk/SKTemplateParser.m

Modified: trunk/SKTemplateParser.m
===================================================================
--- trunk/SKTemplateParser.m    2023-12-28 15:24:17 UTC (rev 14001)
+++ trunk/SKTemplateParser.m    2023-12-28 15:32:58 UTC (rev 14002)
@@ -462,21 +462,25 @@
     } // while
     
     // remove whitespace before and after collection and condition tags up 
till newlines
-    NSInteger i, count = [result count];
+    NSInteger i;
+    SKTemplateTagType typeAfter = SKNoTemplateTagType;
     
-    for (i = count - 1; i >= 0; i--) {
+    for (i = [result count] - 1; i >= 0; i--) {
         __kindof SKTemplateTag *tag = [result objectAtIndex:i];
         
-        if ([tag type] != SKTemplateTagText) continue;
+        if ([tag type] != SKTemplateTagText) {
+            typeAfter = [tag type];
+            continue;
+        }
         
         NSString *string = [tag text];
-        NSRange range = rangeAfterRemovingEmptyLines(string, i > 0 ? 
[(SKTemplateTag *)[result objectAtIndex:i - 1] type] : SKNoTemplateTagType, i < 
count - 1 ? [(SKTemplateTag *)[result objectAtIndex:i + 1] type] : 
SKNoTemplateTagType, isSubtemplate);
+        NSRange range = rangeAfterRemovingEmptyLines(string, i > 0 ? 
[(SKTemplateTag *)[result objectAtIndex:i - 1] type] : SKNoTemplateTagType, 
typeAfter, isSubtemplate);
         
         if (range.length == 0) {
             [result removeObjectAtIndex:i];
-            --count;
         } else if (range.length != [string length]) {
             [tag setText:[string substringWithRange:range]];
+            typeAfter = SKTemplateTagText;
         }
     }
     
@@ -698,22 +702,26 @@
     
     
     // remove whitespace before and after collection and condition tags up 
till newlines
-    NSInteger i, count = [result count];
+    NSInteger i;
+    SKTemplateTagType typeAfter = SKNoTemplateTagType;
     
-    for (i = count - 1; i >= 0; i--) {
+    for (i = [result count] - 1; i >= 0; i--) {
         __kindof SKTemplateTag *tag = [result objectAtIndex:i];
         
-        if ([tag type] != SKTemplateTagText) continue;
+        if ([tag type] != SKTemplateTagText) {
+            typeAfter = [tag type];
+            continue;
+        }
         
         NSAttributedString *attrString = [tag attributedText];
         NSString *string = [attrString string];
-        NSRange range = rangeAfterRemovingEmptyLines(string, i > 0 ? 
[(SKTemplateTag *)[result objectAtIndex:i - 1] type] : SKNoTemplateTagType, i < 
count - 1 ? [(SKTemplateTag *)[result objectAtIndex:i + 1] type] : 
SKNoTemplateTagType, isSubtemplate);
+        NSRange range = rangeAfterRemovingEmptyLines(string, i > 0 ? 
[(SKTemplateTag *)[result objectAtIndex:i - 1] type] : SKNoTemplateTagType, 
typeAfter, isSubtemplate);
         
         if (range.length == 0) {
             [result removeObjectAtIndex:i];
-            --count;
         } else if (range.length != [string length]) {
             [tag setAttributedText:[attrString 
attributedSubstringFromRange:range]];
+            typeAfter = SKTemplateTagText;
         }
     }
     

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to