Revision: 28477
          http://sourceforge.net/p/bibdesk/svn/28477
Author:   hofman
Date:     2023-12-28 22:51:44 +0000 (Thu, 28 Dec 2023)
Log Message:
-----------
remember last tag type rather than getting it again

Modified Paths:
--------------
    trunk/bibdesk/BDSKTemplateParser.m

Modified: trunk/bibdesk/BDSKTemplateParser.m
===================================================================
--- trunk/bibdesk/BDSKTemplateParser.m  2023-12-22 17:01:28 UTC (rev 28476)
+++ trunk/bibdesk/BDSKTemplateParser.m  2023-12-28 22:51:44 UTC (rev 28477)
@@ -457,20 +457,26 @@
     [scanner release];
     
     // remove whitespace before and after collection and condition tags up 
till newlines
-    NSInteger i, count = [result count];
+    NSInteger i;
+    BDSKTemplateTagType typeAfter = BDSKNoTemplateTagType;
     
-    for (i = count - 1; i >= 0; i--) {
+    for (i = [result count] - 1; i >= 0; i--) {
         BDSKTemplateTag *tag = [result objectAtIndex:i];
         
-        if ([tag type] != BDSKTemplateTagText) continue;
+        if ([tag type] != BDSKTemplateTagText) {
+            typeAfter = [tag type];
+            continue;
+        }
         
         NSString *string = [(BDSKTextTemplateTag *)tag text];
-        NSRange range = rangeAfterRemovingEmptyLines(string, i > 0 ? 
[(BDSKTemplateTag *)[result objectAtIndex:i - 1] type] : BDSKNoTemplateTagType, 
i < count - 1 ? [(BDSKTemplateTag *)[result objectAtIndex:i + 1] type] : 
BDSKNoTemplateTagType, isSubtemplate);
+        NSRange range = rangeAfterRemovingEmptyLines(string, i > 0 ? 
[(BDSKTemplateTag *)[result objectAtIndex:i - 1] type] : BDSKNoTemplateTagType, 
typeAfter, isSubtemplate);
         
-        if (range.length == 0)
+        if (range.length == 0) {
             [result removeObjectAtIndex:i];
-        else if (range.length != [string length])
+        } else if (range.length != [string length]) {
             [(BDSKTextTemplateTag *)tag setText:[string 
substringWithRange:range]];
+            typeAfter = BDSKTemplateTagText;
+        }
     }
     
     return [result autorelease];    
@@ -714,21 +720,27 @@
     [scanner release];
     
     // remove whitespace before and after collection and condition tags up 
till newlines
-    NSInteger i, count = [result count];
+    NSInteger i;
+    BDSKTemplateTagType typeAfter = BDSKNoTemplateTagType;
     
-    for (i = count - 1; i >= 0; i--) {
+    for (i = [result count] - 1; i >= 0; i--) {
         BDSKTemplateTag *tag = [result objectAtIndex:i];
         
-        if ([tag type] != BDSKTemplateTagText) continue;
+        if ([tag type] != BDSKTemplateTagText) {
+            typeAfter = BDSKNoTemplateTagType;
+            continue;
+        }
         
         NSAttributedString *attrString = [(BDSKRichTextTemplateTag *)tag 
attributedText];
         NSString *string = [attrString string];
-        NSRange range = rangeAfterRemovingEmptyLines(string, i > 0 ? 
[(BDSKTemplateTag *)[result objectAtIndex:i - 1] type] : BDSKNoTemplateTagType, 
i < count - 1 ? [(BDSKTemplateTag *)[result objectAtIndex:i + 1] type] : 
BDSKNoTemplateTagType, isSubtemplate);
+        NSRange range = rangeAfterRemovingEmptyLines(string, i > 0 ? 
[(BDSKTemplateTag *)[result objectAtIndex:i - 1] type] : BDSKNoTemplateTagType, 
typeAfter, isSubtemplate);
         
-        if (range.length == 0)
+        if (range.length == 0) {
             [result removeObjectAtIndex:i];
-        else if (range.length != [string length])
+        } else if (range.length != [string length]) {
             [(BDSKRichTextTemplateTag *)tag setAttributedText:[attrString 
attributedSubstringFromRange:range]];
+            typeAfter = BDSKTemplateTagText;
+        }
     }
     
     return [result autorelease];    

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



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to