summaryrefslogtreecommitdiffstats
path: root/academic/sword/sword.diff
diff options
context:
space:
mode:
Diffstat (limited to 'academic/sword/sword.diff')
-rw-r--r--academic/sword/sword.diff75
1 files changed, 75 insertions, 0 deletions
diff --git a/academic/sword/sword.diff b/academic/sword/sword.diff
new file mode 100644
index 0000000000..ac57df456c
--- /dev/null
+++ b/academic/sword/sword.diff
@@ -0,0 +1,75 @@
+Index: src/mgr/stringmgr.cpp
+===================================================================
+--- src/mgr/stringmgr.cpp (revision 3718)
++++ src/mgr/stringmgr.cpp (revision 3721)
+@@ -20,6 +20,7 @@
+ *
+ */
+
++#include <ctype.h>
+ #include <stringmgr.h>
+ #include <swlog.h>
+ #include <localemgr.h>
+Index: src/modules/filters/osisxhtml.cpp
+===================================================================
+--- src/modules/filters/osisxhtml.cpp (revision 3718)
++++ src/modules/filters/osisxhtml.cpp (revision 3721)
+@@ -849,7 +849,11 @@
+ else if (tag.isEndTag()) {
+ outText("</div>", buf, u);
+ }
+- else if (!(type == "colophon")) outText(tag, buf, u);
++ else if (!(type == "colophon")) {
++ if (tag.getAttribute("sID")) tag.setEmpty(false);
++ if (tag.getAttribute("eID")) tag.setEndTag(true);
++ outText(tag, buf, u);
++ }
+
+ }
+ else if (!strcmp(tag.getName(), "span")) {
+Index: src/utilfuns/utilxml.cpp
+===================================================================
+--- src/utilfuns/utilxml.cpp (revision 3718)
++++ src/utilfuns/utilxml.cpp (revision 3721)
+@@ -291,13 +291,16 @@
+ tag.append('/');
+
+ tag.append(getName());
+- for (StringPairMap::iterator it = attributes.begin(); it != attributes.end(); it++) {
+- //tag.appendFormatted(" %s=\"%s\"", it->first.c_str(), it->second.c_str());
+- tag.append(' ');
+- tag.append(it->first.c_str());
+- tag.append((strchr(it->second.c_str(), '\"')) ? "=\'" : "=\"");
+- tag.append(it->second.c_str());
+- tag.append((strchr(it->second.c_str(), '\"'))? '\'' : '\"');
++
++ if (!isEndTag()) {
++ for (StringPairMap::iterator it = attributes.begin(); it != attributes.end(); it++) {
++ //tag.appendFormatted(" %s=\"%s\"", it->first.c_str(), it->second.c_str());
++ tag.append(' ');
++ tag.append(it->first.c_str());
++ tag.append((strchr(it->second.c_str(), '\"')) ? "=\'" : "=\"");
++ tag.append(it->second.c_str());
++ tag.append((strchr(it->second.c_str(), '\"'))? '\'' : '\"');
++ }
+ }
+
+ if (isEmpty())
+Index: include/utilxml.h
+===================================================================
+--- include/utilxml.h (revision 3718)
++++ include/utilxml.h (revision 3721)
+@@ -75,6 +75,13 @@
+ * otherwise, we return if we're a simple XML end </tag>.
+ */
+ bool isEndTag(const char *eID = 0) const;
++ inline void setEndTag(bool value) {
++ if (!parsed)
++ parse();
++ endTag = value;
++ if (value)
++ empty = false;
++ }
+
+ const StringList getAttributeNames() const;
+ int getAttributePartCount(const char *attribName, char partSplit = '|') const;