UT_Error IE_Imp_XML::importFile(const char * data, UT_uint32 length) { m_szFileName = 0; UT_XML default_xml; UT_XML * parser = &default_xml; if (m_pParser) parser = m_pParser; parser->setListener (this); if (m_pReader) parser->setReader (m_pReader); UT_Error err = parser->parse (data, length); if ((err != UT_OK) && (err != UT_IE_SKIPINVALID)) m_error = UT_IE_BOGUSDOCUMENT; if (m_error != UT_OK) { UT_DEBUGMSG(("Problem reading document\n")); if(m_error != UT_IE_SKIPINVALID) m_szFileName = 0; } return m_error; }
bool IE_Imp_XML::pasteFromBuffer(PD_DocumentRange * pDocRange, const unsigned char * pData, UT_uint32 lenData, const char * /*szEncoding*/) { UT_DEBUGMSG(("IE_Imp_XML::pasteFromBuffer\n")); UT_return_val_if_fail(pDocRange && pDocRange->m_pDoc,false); setClipboard(pDocRange->m_pos1); UT_XML default_xml; UT_XML * parser = &default_xml; if (m_pParser) parser = m_pParser; parser->setListener (this); if (m_pReader) parser->setReader (m_pReader); UT_Error err = parser->parse ((const char*)pData, lenData); if ((err != UT_OK) && (err != UT_IE_SKIPINVALID)) m_error = UT_IE_BOGUSDOCUMENT; if (m_error != UT_OK) { UT_DEBUGMSG(("Problem reading document\n")); return false; } return true; }
UT_Error IE_Imp_XML::_loadFile(GsfInput * input) { m_szFileName = gsf_input_name (input); UT_XML default_xml; UT_XML * parser = &default_xml; if (m_pParser) parser = m_pParser; parser->setListener (this); if (m_pReader) parser->setReader (m_pReader); // hack!!! size_t num_bytes = gsf_input_size(input); char * bytes = (char *)gsf_input_read(input, num_bytes, NULL); UT_Error err = parser->parse (bytes, num_bytes); if ((err != UT_OK) && (err != UT_IE_SKIPINVALID)) m_error = UT_IE_BOGUSDOCUMENT; if (m_error != UT_OK) { UT_DEBUGMSG(("Problem reading document\n")); if(m_error != UT_IE_SKIPINVALID) m_szFileName = 0; } return m_error; }