[sword-devel] proposed patch: adding n=X marker content to footnotes and xrefs

DM Smith dmsmith at crosswire.org
Wed Feb 8 20:49:13 MST 2012


I'm not sure I follow the code (I've been a long while away from C/C++, so I could be misreading it altogether), but it looks like it expects the value of the n attribute to be a single character.  If so, I think there might be problems.

IIRC the ESV has values for n  like a, b, c, ... z, aa, ab, ...

In Him,
	DM

On Feb 8, 2012, at 9:31 PM, Karl Kleinpaste wrote:

> Attached is an updated patch to do this as suggested by Greg.  It makes
> RenderText() take another default-value argument.  No change to old
> behavior, unless you explicitly provide that (4th) parameter as "true".
> 
> The patch sets a field in SWModule, which is then pulled into the
> filters' user data structure, and that is used to determine whether to
> include n=X content after *n/*x.
> 
> Other ideas to replace *n/*x with something considered less ugly or more
> demonstrative would be good.  For myself, well, it'll do for now; it's
> been that way for a decade, after all.
> 
> Feedback welcome.
> 
> Index: src/modules/swmodule.cpp
> ===================================================================
> --- src/modules/swmodule.cpp	(revision 2676)
> +++ src/modules/swmodule.cpp	(working copy)
> @@ -861,7 +861,7 @@
>  * RET: this module's text at current key location massaged by RenderText filters
>  */
> 
> - const char *SWModule::RenderText(const char *buf, int len, bool render) {
> +const char *SWModule::RenderText(const char *buf, int len, bool render, bool includeNumbers) {
> 	bool savePEA = isProcessEntryAttributes();
> 	if (!buf) {
> 		entryAttributes.clear();
> @@ -886,8 +886,10 @@
> 			optionFilter(tmpbuf, key);
> 	
> 			if (render) {
> +				markers = includeNumbers;
> 				renderFilter(tmpbuf, key);
> 				encodingFilter(tmpbuf, key);
> +				markers = false;
> 			}
> 			else	stripFilter(tmpbuf, key);
> 		}
> Index: src/modules/filters/thmlxhtml.cpp
> ===================================================================
> --- src/modules/filters/thmlxhtml.cpp	(revision 2676)
> +++ src/modules/filters/thmlxhtml.cpp	(working copy)
> @@ -39,6 +39,7 @@
> 		version = module->Name();
> 		BiblicalText = (!strcmp(module->Type(), "Biblical Texts"));
> 		SecHead = false;
> +		markers = module->markers;
> 	}	
> }
> 
> @@ -208,6 +209,7 @@
> 				if (!tag.isEmpty()) {
> 					SWBuf type = tag.getAttribute("type");
> 					SWBuf footnoteNumber = tag.getAttribute("swordFootnote");
> +					SWBuf noteName = tag.getAttribute("n");
> 					VerseKey *vkey = NULL;
> 					// see if we have a VerseKey * or descendant
> 					SWTRY {
> @@ -217,23 +219,25 @@
> 					if (vkey) {
> 						// leave this special osis type in for crossReference notes types?  Might thml use this some day? Doesn't hurt.
> 						char ch = ((tag.getAttribute("type") && ((!strcmp(tag.getAttribute("type"), "crossReference")) || (!strcmp(tag.getAttribute("type"), "x-cross-ref")))) ? 'x':'n');
> -						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c</sup></small></a>", 
> +						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c%s</sup></small></a>", 
> 							ch, 
> 							URL::encode(footnoteNumber.c_str()).c_str(), 
> 							URL::encode(u->version.c_str()).c_str(), 
> 							URL::encode(vkey->getText()).c_str(), 
> 							ch,
> -							ch);
> +							ch, 
> +							(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 					}
> 					else {
> 						char ch = ((tag.getAttribute("type") && ((!strcmp(tag.getAttribute("type"), "crossReference")) || (!strcmp(tag.getAttribute("type"), "x-cross-ref")))) ? 'x':'n');
> -						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c</sup></small></a>", 
> +						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c%s</sup></small></a>", 
> 							ch, 
> 							URL::encode(footnoteNumber.c_str()).c_str(), 
> 							URL::encode(u->version.c_str()).c_str(), 
> 							URL::encode(u->key->getText()).c_str(),  
> 							ch,
> -							ch);
> +							ch, 
> +							(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 					}
> 					u->suspendTextPassThru = true;
> 				}
> @@ -267,6 +271,7 @@
> 				}
> 				else {
> 					SWBuf footnoteNumber = u->startTag.getAttribute("swordFootnote");
> +					SWBuf noteName = tag.getAttribute("n");
> 					VerseKey *vkey = NULL;
> 					// see if we have a VerseKey * or descendant
> 					SWTRY {
> @@ -276,11 +281,11 @@
> 					if (vkey) {
> 						// leave this special osis type in for crossReference notes types?  Might thml use this some day? Doesn't hurt.
> 						//buf.appendFormatted("<a href=\"noteID=%s.x.%s\"><small><sup>*x</sup></small></a> ", vkey->getText(), footnoteNumber.c_str());
> -						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=x&value=%s&module=%s&passage=%s\"><small><sup class=\"x\">*x</sup></small></a>",
> +						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=x&value=%s&module=%s&passage=%s\"><small><sup class=\"x\">*x%s</sup></small></a>",
> 							URL::encode(footnoteNumber.c_str()).c_str(), 
> 							URL::encode(u->version.c_str()).c_str(),
> -							URL::encode(vkey->getText()).c_str());
> -					
> +							URL::encode(vkey->getText()).c_str(), 
> +							(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 					}
> 				}
> 
> Index: src/modules/filters/gbfhtmlhref.cpp
> ===================================================================
> --- src/modules/filters/gbfhtmlhref.cpp	(revision 2676)
> +++ src/modules/filters/gbfhtmlhref.cpp	(working copy)
> @@ -35,6 +35,7 @@
> GBFHTMLHREF::MyUserData::MyUserData(const SWModule *module, const SWKey *key) : BasicFilterUserData(module, key) {
> 	if (module) {
> 		version = module->Name(); 
> +		markers = module->markers;
> 	}	
> }
> 
> @@ -231,6 +232,7 @@
> 		else if (!strcmp(tag.getName(), "RF")) {
> 			SWBuf type = tag.getAttribute("type");
> 			SWBuf footnoteNumber = tag.getAttribute("swordFootnote");
> +			SWBuf noteName = tag.getAttribute("n");
> 			VerseKey *vkey = NULL;
> 			// see if we have a VerseKey * or descendant
> 			SWTRY {
> @@ -240,10 +242,11 @@
> 			if (vkey) {
> 				// leave this special osis type in for crossReference notes types?  Might thml use this some day? Doesn't hurt.
> 				//char ch = ((tag.getAttribute("type") && ((!strcmp(tag.getAttribute("type"), "crossReference")) || (!strcmp(tag.getAttribute("type"), "x-cross-ref")))) ? 'x':'n');
> -				buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=n&value=%s&module=%s&passage=%s\"><small><sup class=\"n\">*n</sup></small></a> ", 
> +				buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=n&value=%s&module=%s&passage=%s\"><small><sup class=\"n\">*n%s</sup></small></a> ", 
> 					URL::encode(footnoteNumber.c_str()).c_str(),
> 					URL::encode(u->version.c_str()).c_str(), 
> -					URL::encode(vkey->getText()).c_str());
> +					URL::encode(vkey->getText()).c_str(), 
> +					(u->markers ? URL::encode(noteName.c_str()).c_str(): ""));
> 			}
> 			u->suspendTextPassThru = true;
> 		}
> Index: src/modules/filters/osisxhtml.cpp
> ===================================================================
> --- src/modules/filters/osisxhtml.cpp	(revision 2676)
> +++ src/modules/filters/osisxhtml.cpp	(working copy)
> @@ -127,6 +127,7 @@
> 
> OSISXHTML::MyUserData::MyUserData(const SWModule *module, const SWKey *key) : BasicFilterUserData(module, key) {
> 	inXRefNote    = false;
> +	markers = module->markers;
> 	suspendLevel = 0;
> 	tagStacks = new TagStacks();
> 	wordsOfChristStart = "<span class=\"wordsOfJesus\"> ";
> @@ -252,6 +253,7 @@
> 
> 					if (!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
> 						SWBuf footnoteNumber = tag.getAttribute("swordFootnote");
> +						SWBuf noteName = tag.getAttribute("n");
> 						VerseKey *vkey = NULL;
> 						char ch = ((tag.getAttribute("type") && ((!strcmp(tag.getAttribute("type"), "crossReference")) || (!strcmp(tag.getAttribute("type"), "x-cross-ref")))) ? 'x':'n');
> 
> @@ -265,22 +267,24 @@
> 						SWCATCH ( ... ) {	}
> 						if (vkey) {
> 							//printf("URL = %s\n",URL::encode(vkey->getText()).c_str());
> -							buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c</sup></small></a>",
> +							buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c%s</sup></small></a>",
> 								ch, 
> 								URL::encode(footnoteNumber.c_str()).c_str(), 
> 								URL::encode(u->version.c_str()).c_str(), 
> 								URL::encode(vkey->getText()).c_str(), 
> 								ch,
> -								ch);
> +								ch, 
> +								(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 						}
> 						else {
> -							buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c</sup></small></a>",
> +							buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c%s</sup></small></a>",
> 								ch, 
> 								URL::encode(footnoteNumber.c_str()).c_str(), 
> 								URL::encode(u->version.c_str()).c_str(), 
> 								URL::encode(u->key->getText()).c_str(),  
> 								ch,
> -								ch);
> +								ch, 
> +								(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 						}
> 					}
> 				}
> Index: src/modules/filters/osishtmlhref.cpp
> ===================================================================
> --- src/modules/filters/osishtmlhref.cpp	(revision 2676)
> +++ src/modules/filters/osishtmlhref.cpp	(working copy)
> @@ -114,6 +114,7 @@
> 
> OSISHTMLHREF::MyUserData::MyUserData(const SWModule *module, const SWKey *key) : BasicFilterUserData(module, key) {
> 	inXRefNote    = false;
> +	markers = module->markers;
> 	suspendLevel = 0;
> 	tagStacks = new TagStacks();
> 	wordsOfChristStart = "<font color=\"red\"> ";
> @@ -240,6 +241,7 @@
> 
> 					if (!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
> 						SWBuf footnoteNumber = tag.getAttribute("swordFootnote");
> +						SWBuf noteName = tag.getAttribute("n");
> 						VerseKey *vkey = NULL;
> 						char ch = ((tag.getAttribute("type") && ((!strcmp(tag.getAttribute("type"), "crossReference")) || (!strcmp(tag.getAttribute("type"), "x-cross-ref")))) ? 'x':'n');
> 
> @@ -253,22 +255,24 @@
> 						SWCATCH ( ... ) {	}
> 						if (vkey) {
> 							//printf("URL = %s\n",URL::encode(vkey->getText()).c_str());
> -							buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c</sup></small></a>",
> +							buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c%s</sup></small></a>",
> 								ch, 
> 								URL::encode(footnoteNumber.c_str()).c_str(), 
> 								URL::encode(u->version.c_str()).c_str(), 
> 								URL::encode(vkey->getText()).c_str(), 
> 								ch,
> -								ch);
> +								ch, 
> +								(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 						}
> 						else {
> -							buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c</sup></small></a>",
> +							buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c%s</sup></small></a>",
> 								ch, 
> 								URL::encode(footnoteNumber.c_str()).c_str(), 
> 								URL::encode(u->version.c_str()).c_str(), 
> 								URL::encode(u->key->getText()).c_str(),  
> 								ch,
> -								ch);
> +								ch, 
> +								(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 						}
> 					}
> 				}
> Index: src/modules/filters/gbfxhtml.cpp
> ===================================================================
> --- src/modules/filters/gbfxhtml.cpp	(revision 2676)
> +++ src/modules/filters/gbfxhtml.cpp	(working copy)
> @@ -41,6 +41,7 @@
> GBFXHTML::MyUserData::MyUserData(const SWModule *module, const SWKey *key) : BasicFilterUserData(module, key) {
> 	if (module) {
> 		version = module->Name(); 
> +		markers = module->markers;
> 	}	
> }
> 
> @@ -168,6 +169,7 @@
> 		else if (!strcmp(tag.getName(), "RF")) {
> 			SWBuf type = tag.getAttribute("type");
> 			SWBuf footnoteNumber = tag.getAttribute("swordFootnote");
> +			SWBuf noteName = tag.getAttribute("n");
> 			VerseKey *vkey = NULL;
> 			// see if we have a VerseKey * or descendant
> 			SWTRY {
> @@ -177,10 +179,11 @@
> 			if (vkey) {
> 				// leave this special osis type in for crossReference notes types?  Might thml use this some day? Doesn't hurt.
> 				//char ch = ((tag.getAttribute("type") && ((!strcmp(tag.getAttribute("type"), "crossReference")) || (!strcmp(tag.getAttribute("type"), "x-cross-ref")))) ? 'x':'n');
> -				buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=n&value=%s&module=%s&passage=%s\"><small><sup class=\"n\">*n</sup></small></a> ", 
> +				buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=n&value=%s&module=%s&passage=%s\"><small><sup class=\"n\">*n%s</sup></small></a> ", 
> 					URL::encode(footnoteNumber.c_str()).c_str(),
> 					URL::encode(u->version.c_str()).c_str(), 
> -					URL::encode(vkey->getText()).c_str());
> +					URL::encode(vkey->getText()).c_str(), 
> +					(u->markers ? URL::encode(noteName.c_str()).c_str(): ""));
> 			}
> 			u->suspendTextPassThru = true;
> 		}
> Index: src/modules/filters/thmlhtmlhref.cpp
> ===================================================================
> --- src/modules/filters/thmlhtmlhref.cpp	(revision 2676)
> +++ src/modules/filters/thmlhtmlhref.cpp	(working copy)
> @@ -29,6 +29,8 @@
> #include <versekey.h>
> #include <url.h>
> 
> +#include <stdio.h>
> +
> SWORD_NAMESPACE_START
> 
> 
> @@ -37,6 +39,8 @@
> 		version = module->Name();
> 		BiblicalText = (!strcmp(module->Type(), "Biblical Texts"));
> 		SecHead = false;
> +		markers = module->markers;
> +		printf("==> markers %s\n", (markers ? "YES" : "NO"));
> 	}	
> }
> 
> @@ -206,6 +210,7 @@
> 				if (!tag.isEmpty()) {
> 					SWBuf type = tag.getAttribute("type");
> 					SWBuf footnoteNumber = tag.getAttribute("swordFootnote");
> +					SWBuf noteName = tag.getAttribute("n");
> 					VerseKey *vkey = NULL;
> 					// see if we have a VerseKey * or descendant
> 					SWTRY {
> @@ -215,23 +220,25 @@
> 					if (vkey) {
> 						// leave this special osis type in for crossReference notes types?  Might thml use this some day? Doesn't hurt.
> 						char ch = ((tag.getAttribute("type") && ((!strcmp(tag.getAttribute("type"), "crossReference")) || (!strcmp(tag.getAttribute("type"), "x-cross-ref")))) ? 'x':'n');
> -						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c</sup></small></a>", 
> +						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c%s</sup></small></a>", 
> 							ch, 
> 							URL::encode(footnoteNumber.c_str()).c_str(), 
> 							URL::encode(u->version.c_str()).c_str(), 
> 							URL::encode(vkey->getText()).c_str(), 
> 							ch,
> -							ch);
> +							ch, 
> +							(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 					}
> 					else {
> 						char ch = ((tag.getAttribute("type") && ((!strcmp(tag.getAttribute("type"), "crossReference")) || (!strcmp(tag.getAttribute("type"), "x-cross-ref")))) ? 'x':'n');
> -						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c</sup></small></a>", 
> +						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=%c&value=%s&module=%s&passage=%s\"><small><sup class=\"%c\">*%c%s</sup></small></a>", 
> 							ch, 
> 							URL::encode(footnoteNumber.c_str()).c_str(), 
> 							URL::encode(u->version.c_str()).c_str(), 
> 							URL::encode(u->key->getText()).c_str(),  
> 							ch,
> -							ch);
> +							ch, 
> +							(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 					}
> 					u->suspendTextPassThru = true;
> 				}
> @@ -265,6 +272,7 @@
> 				}
> 				else {
> 					SWBuf footnoteNumber = u->startTag.getAttribute("swordFootnote");
> +					SWBuf noteName = tag.getAttribute("n");
> 					VerseKey *vkey = NULL;
> 					// see if we have a VerseKey * or descendant
> 					SWTRY {
> @@ -274,11 +282,11 @@
> 					if (vkey) {
> 						// leave this special osis type in for crossReference notes types?  Might thml use this some day? Doesn't hurt.
> 						//buf.appendFormatted("<a href=\"noteID=%s.x.%s\"><small><sup>*x</sup></small></a> ", vkey->getText(), footnoteNumber.c_str());
> -						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=x&value=%s&module=%s&passage=%s\"><small><sup class=\"x\">*x</sup></small></a>",
> +						buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=x&value=%s&module=%s&passage=%s\"><small><sup class=\"x\">*x%s</sup></small></a>",
> 							URL::encode(footnoteNumber.c_str()).c_str(), 
> 							URL::encode(u->version.c_str()).c_str(),
> -							URL::encode(vkey->getText()).c_str());
> -					
> +							URL::encode(vkey->getText()).c_str(), 
> +							(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 					}
> 				}
> 
> Index: src/modules/filters/teihtmlhref.cpp
> ===================================================================
> --- src/modules/filters/teihtmlhref.cpp	(revision 2676)
> +++ src/modules/filters/teihtmlhref.cpp	(working copy)
> @@ -36,6 +36,7 @@
> 	BiblicalText = false;
> 	if (module) {
> 		version = module->Name();
> +		markers = module->markers;
> 		BiblicalText = (!strcmp(module->Type(), "Biblical Texts"));
> 	}
> }
> @@ -259,11 +260,13 @@
> 			}
> 			if (tag.isEndTag()) {
> 				SWBuf footnoteNumber = tag.getAttribute("swordFootnote");
> +				SWBuf noteName = tag.getAttribute("n");
> 				
> -				buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=n&value=%s&module=%s&passage=%s\"><small><sup class=\"n\">*n</sup></small></a>",
> +				buf.appendFormatted("<a href=\"passagestudy.jsp?action=showNote&type=n&value=%s&module=%s&passage=%s\"><small><sup class=\"n\">*n%s</sup></small></a>",
> 					URL::encode(footnoteNumber.c_str()).c_str(), 
> 					URL::encode(u->version.c_str()).c_str(),
> -					URL::encode(u->key->getText()).c_str());
> +					URL::encode(u->key->getText()).c_str(), 
> +					(u->markers ? URL::encode(noteName.c_str()).c_str() : ""));
> 				
> 				u->suspendTextPassThru = false;
> 			}
> Index: include/osishtmlhref.h
> ===================================================================
> --- include/osishtmlhref.h	(revision 2676)
> +++ include/osishtmlhref.h	(working copy)
> @@ -39,6 +39,7 @@
> 		bool inBold;	// TODO: obsolete. left for binary compat for 1.6.x
> 		bool inXRefNote;
> 		bool BiblicalText;
> +		bool markers;
> 		int suspendLevel;
> 		SWBuf wordsOfChristStart;
> 		SWBuf wordsOfChristEnd;
> Index: include/gbfhtmlhref.h
> ===================================================================
> --- include/gbfhtmlhref.h	(revision 2676)
> +++ include/gbfhtmlhref.h	(working copy)
> @@ -33,6 +33,7 @@
> 	public:
> 		MyUserData(const SWModule *module, const SWKey *key);
> 		bool hasFootnotePreTag;
> +		bool markers;
> 		SWBuf version;
> 	};
> 	virtual BasicFilterUserData *createUserData(const SWModule *module, const SWKey *key) {
> Index: include/thmlhtmlhref.h
> ===================================================================
> --- include/thmlhtmlhref.h	(revision 2676)
> +++ include/thmlhtmlhref.h	(working copy)
> @@ -37,6 +37,7 @@
> 		bool inscriptRef;
> 		bool SecHead;
> 		bool BiblicalText;
> +		bool markers;
> 		SWBuf version;
> 		XMLTag startTag;
> 	};
> Index: include/swmodule.h
> ===================================================================
> --- include/swmodule.h	(revision 2676)
> +++ include/swmodule.h	(working copy)
> @@ -144,6 +144,9 @@
> 	 */
> 	bool terminateSearch;
> 
> +	/** whether to include marker strings in notes/xrefs */
> +	bool markers;
> +
> 	/** SWModule c-tor
> 	 *
> 	 * @param imodname Internal name for module; see also getName()
> @@ -617,9 +620,10 @@
> 	 *	if buf is 0, the current module position text will be used
> 	 * @param len max len to process
> 	 * @param render for internal use
> +	 * @param includeNumbers indicates rendering note/xref n=X content.
> 	 * @return result buffer
> 	 */
> -	virtual const char *RenderText(const char *buf = 0, int len = -1, bool render = true);
> +	virtual const char *RenderText(const char *buf = 0, int len = -1, bool render = true, bool includeNumbers = false);
> 
> 	/** Produces any header data which might be useful which associated with the
> 	 *	processing done with this filter.  A typical example is a suggested
> Index: include/thmlxhtml.h
> ===================================================================
> --- include/thmlxhtml.h	(revision 2676)
> +++ include/thmlxhtml.h	(working copy)
> @@ -37,6 +37,7 @@
> 		bool inscriptRef;
> 		bool SecHead;
> 		bool BiblicalText;
> +		bool markers;
> 		SWBuf version;
> 		XMLTag startTag;
> 	};
> Index: include/gbfxhtml.h
> ===================================================================
> --- include/gbfxhtml.h	(revision 2676)
> +++ include/gbfxhtml.h	(working copy)
> @@ -33,6 +33,7 @@
> 	public:
> 		MyUserData(const SWModule *module, const SWKey *key);
> 		bool hasFootnotePreTag;
> +		bool markers;
> 		SWBuf version;
> 	};
> 	virtual BasicFilterUserData *createUserData(const SWModule *module, const SWKey *key) {
> Index: include/teihtmlhref.h
> ===================================================================
> --- include/teihtmlhref.h	(revision 2676)
> +++ include/teihtmlhref.h	(working copy)
> @@ -34,6 +34,7 @@
> 	class MyUserData : public BasicFilterUserData {
> 	public:
> 		bool BiblicalText;
> +		bool markers;
> 		SWBuf lastHi;
> 		
> 		SWBuf version;
> Index: include/osisxhtml.h
> ===================================================================
> --- include/osisxhtml.h	(revision 2676)
> +++ include/osisxhtml.h	(working copy)
> @@ -39,6 +39,7 @@
> 		bool inBold;	// TODO: obsolete. left for binary compat for 1.6.x
> 		bool inXRefNote;
> 		bool BiblicalText;
> +		bool markers;
> 		int suspendLevel;
> 		SWBuf wordsOfChristStart;
> 		SWBuf wordsOfChristEnd;
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page




More information about the sword-devel mailing list