summaryrefslogtreecommitdiff
path: root/hwpfilter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-06-13 22:23:07 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-06-13 22:23:07 +0100
commitbfd0bbab201d574d3387dacf1c74e80a3ed157bb (patch)
tree48d2e4217145fd4c82f7e41306f1d6e0007fa3d2 /hwpfilter
parent20a1afe407e4b592c787965b85ecfa8ddfd333de (diff)
survive missing writer component for testing purposes
Diffstat (limited to 'hwpfilter')
-rw-r--r--hwpfilter/source/formula.cpp10
-rw-r--r--hwpfilter/source/formula.h24
-rw-r--r--hwpfilter/source/hwpreader.cxx14
-rw-r--r--hwpfilter/source/hwpreader.hxx16
4 files changed, 34 insertions, 30 deletions
diff --git a/hwpfilter/source/formula.cpp b/hwpfilter/source/formula.cpp
index 2ff8046d8a49..d2a73ac72d07 100644
--- a/hwpfilter/source/formula.cpp
+++ b/hwpfilter/source/formula.cpp
@@ -42,11 +42,11 @@ extern LinkedList<Node> nodelist;
static hchar entity[32];
#define ascii(x) OUString::createFromAscii(x)
-#define rstartEl(x,y) rDocumentHandler->startElement(x,y)
-#define rendEl(x) rDocumentHandler->endElement(x)
-#define rchars(x) rDocumentHandler->characters(ascii(x))
-#define runistr(x) rDocumentHandler->characters(OUString(x))
-#define reucstr(x,y) rDocumentHandler->characters(OUString(x,y, RTL_TEXTENCODING_EUC_KR))
+#define rstartEl(x,y) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->startElement(x,y); } while(0)
+#define rendEl(x) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->endElement(x); } while(0)
+#define rchars(x) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->characters(ascii(x)); } while(0)
+#define runistr(x) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->characters(OUString(x)); } while(0)
+#define reucstr(x,y) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->characters(OUString(x,y, RTL_TEXTENCODING_EUC_KR)); } while(0)
#define padd(x,y,z) pList->addAttribute(x,y,z)
#else
static char entity[32];
diff --git a/hwpfilter/source/formula.h b/hwpfilter/source/formula.h
index 886eb2d8e394..d43694374c82 100644
--- a/hwpfilter/source/formula.h
+++ b/hwpfilter/source/formula.h
@@ -43,8 +43,8 @@ class Node;
using namespace ::com::sun::star::xml::sax;
// #endif
-
-class Formula{
+class Formula
+{
public:
Formula(char *_eq, int _ishwpeq = 1)
: pList(NULL)
@@ -55,14 +55,16 @@ public:
}
virtual ~Formula(){ }
- void setDocumentHandler(Reference < XDocumentHandler > xHandler ){
- rDocumentHandler = xHandler;
- }
- void setAttributeListImpl( AttributeListImpl *p ){
- pList = p;
- rList = (XAttributeList *) pList;
- }
- int parse();
+ void setDocumentHandler(Reference < XDocumentHandler > xHandler )
+ {
+ m_rxDocumentHandler = xHandler;
+ }
+ void setAttributeListImpl( AttributeListImpl *p )
+ {
+ pList = p;
+ rList = (XAttributeList *) pList;
+ }
+ int parse();
private:
void trim();
void makeMathML(Node *res);
@@ -87,7 +89,7 @@ private:
void makeEnd(Node *res);
private:
- Reference< XDocumentHandler > rDocumentHandler;
+ Reference< XDocumentHandler > m_rxDocumentHandler;
Reference< XAttributeList > rList;
AttributeListImpl *pList;
char *eq;
diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx
index cdf36c923274..07eee5d7e581 100644
--- a/hwpfilter/source/hwpreader.cxx
+++ b/hwpfilter/source/hwpreader.cxx
@@ -51,9 +51,9 @@ extern int getRepFamilyName(const char* , char *, double &ratio);
// To be shorten source code by realking
#define hconv(x,y) OUString(hstr2ucsstr(x,y))
#define ascii(x) OUString::createFromAscii(x)
-#define rstartEl(x,y) rDocumentHandler->startElement(x,y)
-#define rendEl(x) rDocumentHandler->endElement(x)
-#define rchars(x) rDocumentHandler->characters(x)
+#define rstartEl(x,y) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->startElement(x,y); } while(0)
+#define rendEl(x) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->endElement(x); } while(0)
+#define rchars(x) do { if (m_rxDocumentHandler.is()) m_rxDocumentHandler->characters(x); } while(0)
#define padd(x,y,z) pList->addAttribute(x,y,z)
#define Double2Str(x) OUString::valueOf((double)(x))
#define WTI(x) ((double)(x) / 1800.) // unit => inch
@@ -203,7 +203,8 @@ throw(SAXException, IOException, RuntimeException)
#endif
}
- rDocumentHandler->startDocument();
+ if (m_rxDocumentHandler.is())
+ m_rxDocumentHandler->startDocument();
padd(ascii("office:class"), sXML_CDATA, ascii("text"));
padd(ascii("office:version"), sXML_CDATA, ascii("0.9"));
@@ -236,7 +237,8 @@ throw(SAXException, IOException, RuntimeException)
rendEl(ascii("office:document"));
- rDocumentHandler->endDocument();
+ if (m_rxDocumentHandler.is())
+ m_rxDocumentHandler->endDocument();
#ifndef UDK100
return sal_True;
#endif
@@ -3763,7 +3765,7 @@ void HwpReader::makeFormula(TxtBox * hbox)
// rchars(ascii(mybuf));
//#ifndef UDK100
Formula *form = new Formula(mybuf);
- form->setDocumentHandler(rDocumentHandler);
+ form->setDocumentHandler(m_rxDocumentHandler);
form->setAttributeListImpl(pList);
form->parse();
diff --git a/hwpfilter/source/hwpreader.hxx b/hwpfilter/source/hwpreader.hxx
index 90e5c30dde51..ef8d767e9ec4 100644
--- a/hwpfilter/source/hwpreader.hxx
+++ b/hwpfilter/source/hwpreader.hxx
@@ -139,21 +139,21 @@ public:
*/
virtual sal_Bool SAL_CALL filter(const Sequence< PropertyValue >& aDescriptor) throw (RuntimeException);
virtual void SAL_CALL cancel() throw(RuntimeException) {}
- virtual void SAL_CALL setDocumentHandler(Reference< XDocumentHandler > xHandler)
+ virtual void SAL_CALL setDocumentHandler(Reference< XDocumentHandler > xHandler)
{
- rDocumentHandler = xHandler;
+ m_rxDocumentHandler = xHandler;
}
- void setUCB( Reference< XInterface > xUCB ){
+ void setUCB( Reference< XInterface > xUCB )
+ {
rUCB = xUCB;
- }
+ }
private:
- Reference< XDocumentHandler > rDocumentHandler;
- Reference< XInterface > rUCB;
+ Reference< XDocumentHandler > m_rxDocumentHandler;
+ Reference< XInterface > rUCB;
Reference< XAttributeList > rList;
AttributeListImpl *pList;
HWPFile hwpfile;
- HwpReaderPrivate *d;
-
+ HwpReaderPrivate *d;
private:
/* -------- Document Parsing --------- */
void makeMeta();