Sorry for the late changes to the public interface. They're fairly small:

For consistency: OptionsList has become StringList, which is the common typedef used for all list < SWBuf > container types.

All option filters now extend a common base class: SWOptionFilter, which shouldn't change anything in your UI.

I've updated the way OSIS Notes are handled in the filters and OSISRTF, to work correctly with the separation of footnotes from crossreferences. I've included the diff of OSISRTF so you can just see what changed, so you might make similar changes in your render filter.

Thanks for all the work.

-Troy

____________

Index: osisrtf.cpp
===================================================================
RCS file: /usr/local/cvsroot/sword/src/modules/filters/osisrtf.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- osisrtf.cpp 28 Jun 2003 21:31:20 -0000      1.11
+++ osisrtf.cpp 5 Jul 2003 01:16:46 -0000       1.12
@@ -128,11 +128,10 @@
                // <note> tag
                else if (!strcmp(tag.getName(), "note")) {
                        if (!tag.isEmpty() && !tag.isEndTag()) {
-                               SWBuf footnoteNum = userData["fn"];
                                SWBuf type = tag.getAttribute("type");
 
                                if (type != "strongsMarkup") {  // leave strong's 
markup notes out, in the future we'll probably have different option filters to turn 
different note types on or off
-                                       int footnoteNumber = (footnoteNum.length()) ? 
atoi(footnoteNum.c_str()) : 1;
+                                       SWBuf footnoteNumber = 
tag.getAttribute("swordFootnote");
                                        VerseKey *vkey;
                                        // see if we have a VerseKey * or descendant
                                        try {
@@ -140,10 +139,7 @@
                                        }
                                        catch ( ... ) { }
                                        if (vkey) {
-                                               buf.appendFormatted("{\\super <a 
href=\"\">*%c%i.%i</a>} ", ((tag.getAttribute("type") && 
((!strcmp(tag.getAttribute("type"), "crossReference")) || 
(!strcmp(tag.getAttribute("type"), "x-cross-ref")))) ? 'x':'n'), vkey->Verse(), 
footnoteNumber);
-                                               SWBuf tmp;
-                                               tmp.appendFormatted("%i", 
++footnoteNumber);
-                                               userData["fn"] = tmp.c_str();
+                                               buf.appendFormatted("{\\super <a 
href=\"\">*%c%i.%s</a>} ", ((tag.getAttribute("type") && 
((!strcmp(tag.getAttribute("type"), "crossReference")) || 
(!strcmp(tag.getAttribute("type"), "x-cross-ref")))) ? 'x':'n'), vkey->Verse(), 
footnoteNumber.c_str());
                                        }
                                }
                                userData["suspendTextPassThru"] = "true";
@@ -180,7 +176,7 @@
                }
 
                // <line> poetry, etc
-               else if (!strcmp(tag.getName(), "line")) {
+               else if ((!strcmp(tag.getName(), "line")) || ((!strcmp(tag.getName(), 
"milestone")) && (tag.getAttribute("type")) && (!strcmp(tag.getAttribute("type"), 
"line")))) {
                        if ((!tag.isEndTag()) && (!tag.isEmpty())) {
                                buf += "{";
                        }

Reply via email to