76 lines
2.5 KiB
Diff
76 lines
2.5 KiB
Diff
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;
|