summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/domhelpers.cpp8
-rw-r--r--src/xmlcomposer.cpp9
-rw-r--r--src/xmlfixups.cpp8
-rw-r--r--test-files/sample.xml2
4 files changed, 17 insertions, 10 deletions
diff --git a/src/domhelpers.cpp b/src/domhelpers.cpp
index 4836d17..9a9cfd2 100644
--- a/src/domhelpers.cpp
+++ b/src/domhelpers.cpp
@@ -50,7 +50,7 @@ bool DOMHelpers::isElement(const DOM::Node& node, const string& name)
bool DOMHelpers::isEqualElement(const DOM::Element& el1, const DOM::Element& el2)
{
- if(el1.getNodeName() == el2.getNodeName())
+ if(el1.getNodeName() != el2.getNodeName())
return false;
// Compare attributes
@@ -67,14 +67,14 @@ bool DOMHelpers::isEqualElement(const DOM::Element& el1, const DOM::Element& el2
for(int i = 0; i < at1->getLength(); i++)
{
DOM::Attr attr1 = (const DOM::Attr&)at1->item(0);
- if(attr1 != NULL)
+ if(attr1 == NULL)
return false;
DOM::Attr attr2 = (const DOM::Attr&)at2->getNamedItem(attr1.getNodeName());
- if(attr2 != NULL)
+ if(attr2 == NULL)
return false;
- if(attr1.getNodeValue() == attr2.getNodeValue())
+ if(attr1.getNodeValue() != attr2.getNodeValue())
return false;
}
diff --git a/src/xmlcomposer.cpp b/src/xmlcomposer.cpp
index a90c25a..6f41b29 100644
--- a/src/xmlcomposer.cpp
+++ b/src/xmlcomposer.cpp
@@ -1095,7 +1095,14 @@ ON_CHARDATA(Content)
AN_ATTRIBUTE(kAtName, font);
if(fontsize != -1)
- AN_ATTRIBUTE(kAtSize, fontsize);
+ {
+ // Little hack for half point sizes
+ wstring size = NUM_ATTR(fontsize / 2);
+ if(fontsize % 2)
+ size.append(L".5");
+
+ AN_ATTRIBUTE(kAtSize, size);
+ }
if(format.textColor() != -1)
AN_ATTRIBUTE(kAtColor, format.textColor());
diff --git a/src/xmlfixups.cpp b/src/xmlfixups.cpp
index 45fa59a..3b56f6b 100644
--- a/src/xmlfixups.cpp
+++ b/src/xmlfixups.cpp
@@ -75,7 +75,7 @@ XmlFixups::XmlFixups()
{
loadStringSet(m_duplicates, kNoDuplicates);
loadStringSet(m_removes, kRemoveTags);
- loadStringSet(m_removes, kRemoveEmpty);
+ loadStringSet(m_removeEmpty, kRemoveEmpty);
loadStringSet(m_requireAttrs, kRequireAttrs);
loadStringSet(m_consolidateStart, kConsolidateStart);
loadStringSet(m_consolidateEnd, kConsolidateEnd);
@@ -511,7 +511,7 @@ void XmlFixups::runPassTwo(const DOM::Document& doc)
if(font != NULL)
el.setAttribute(kAtName, font.getAttribute(kAtName));
- font.removeAttribute(kAtId);
+ el.removeAttribute(kAtId);
}
}
@@ -545,7 +545,7 @@ void XmlFixups::runPassTwo(const DOM::Document& doc)
// Tags that get removed but contents preserved. Also here are
// tags that get removed if they have no attributes
if(m_removes.find(name) != m_removes.end() ||
- (m_requireAttrs.find(name) != m_requireAttrs.end() && el.hasAttributes()))
+ (m_requireAttrs.find(name) != m_requireAttrs.end() && !el.hasAttributes()))
{
DOM::Node parent = el->getParentNode();
@@ -569,7 +569,7 @@ void XmlFixups::runPassTwo(const DOM::Document& doc)
}
// Tags that get removed when no child nodes exist
- if(m_removeEmpty.find(name) != m_removeEmpty.end() && el.hasChildNodes())
+ if(m_removeEmpty.find(name) != m_removeEmpty.end() && !el.hasChildNodes())
{
DOM::Node parent = el->getParentNode();
diff --git a/test-files/sample.xml b/test-files/sample.xml
index a20d97b..85b8bfa 100644
--- a/test-files/sample.xml
+++ b/test-files/sample.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><document><info><title>This is a test RTF</title><author>Nate</author><operator>Nate</operator></info><stylesheet><style name="Normal"/><style name="heading 1"/><style name="footnote text"/></stylesheet><para style="heading 1"><b>This is a test RTF</b></para><para>Hi! I’m a test file. This is some <b>bold</b> text, and some <i>italic</i> text, as well as some <u>underline</u> text. And a bit of <hide>hidden</hide> text. So we’re going to end this paragraph here and go on to a nice little list:</para><para/><list ordered="0" start="1"><para>Item 1</para><para>Item 2</para><para>Item 3</para><para>Item 4</para></list><para/><para>And now comes a fun table:</para><para/><table><row><cell><para>Cell 1</para></cell><cell><para>Cell 2</para><para>More in cell 2</para></cell><cell><para>Cell 3</para></cell></row><row><cell><para>Next row</para></cell><cell><para>Next row </para></cell><cell><para>Next row</para></cell></row></table><para/><para>A page break:</para><page/><para>And here we’re on the next page. </para><para>This para has a <ref type="footnote" to="1"/>footnote.</para><para>And here’s yet another paragraph. </para><para/><footnote id="1"><para> This is the actual content of the footnote.</para></footnote></document> \ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><document xmlns="http://memberwebs.com/ns/rtfx/"><info><title>This is a test RTF</title><author>Nate</author><operator>Nate</operator></info><stylesheet><style name="Normal"/><style name="heading 1"/><style name="footnote text"/></stylesheet><options><font size="12" color="0" name="Times New Roman"/></options><para style="heading 1"><font name="1" size="16"><b>This is a test RTF</b></font></para><para>Hi! I’m a test file. This is some <b>bold</b> text, and some <i>italic</i> text, as well as some <u>underline</u> text. And a bit of <hide>hidden</hide> text. So we’re going to end this paragraph here and go on to a nice little list:</para><para/><list type="disc" ordered="0" start="1"><para>Item 1</para><para>Item 2</para><para>Item 3</para><para>Item 4</para></list><para/><para>And now comes a fun table:</para><para/><table><row><cell><para>Cell 1</para></cell><cell><para>Cell 2</para><para>More in cell 2</para></cell><cell><para>Cell 3</para></cell></row><row><cell><para>Next row</para></cell><cell><para>Next row </para></cell><cell><para>Next row</para></cell></row></table><para/><para>A page break:</para><page/><para>And here we’re on the next page. </para><para>This para has a <ref type="footnote" to="1"><super>1</super></ref>footnote.</para><para>And here’s yet another paragraph. </para><para/><footnote id="1"><para><font size="10"><super>1</super> This is the actual content of the footnote.</font></para></footnote></document> \ No newline at end of file