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