mirror of
https://github.com/jezhiggins/arabica
synced 2024-11-15 19:48:00 +01:00
Merge pull request #9 from QuentinFiard/pr1
Compatibility fixes with latest Clang/LLVM compiler and C++11
This commit is contained in:
commit
2228a60022
4 changed files with 38 additions and 33 deletions
|
@ -8,6 +8,7 @@
|
|||
#include <SAX/Attributes.hpp>
|
||||
#include <stdexcept>
|
||||
#include <deque>
|
||||
#include <sstream>
|
||||
|
||||
namespace Arabica
|
||||
{
|
||||
|
@ -546,9 +547,9 @@ private:
|
|||
void badIndex(unsigned int index)
|
||||
{
|
||||
// sort out
|
||||
std::string msg =
|
||||
"Attempt to modify attribute at illegal index: " + index;
|
||||
throw std::out_of_range(msg);
|
||||
std::stringstream msg;
|
||||
msg << "Attempt to modify attribute at illegal index: " << index;
|
||||
throw std::out_of_range(msg.str());
|
||||
}
|
||||
|
||||
class AttributeNamed
|
||||
|
|
|
@ -38,6 +38,32 @@ namespace libxml2_wrapper_impl_tiddle
|
|||
extern "C"
|
||||
{
|
||||
|
||||
void lwit_startDocument(void* user_data);
|
||||
void lwit_endDocument(void* user_data);
|
||||
void lwit_startElement(void *user_data, const xmlChar* name, const xmlChar** attrs);
|
||||
void lwit_endElement(void *user_data, const xmlChar* name);
|
||||
void lwit_characters(void* user_data, const xmlChar* ch, int len);
|
||||
void lwit_cdata(void* user_data, const xmlChar* ch, int len);
|
||||
void lwit_ignorableWhitespace(void *user_data, const xmlChar* ch, int len);
|
||||
void lwit_processingInstruction(void *user_data, const xmlChar* target, const xmlChar* data);
|
||||
void lwit_comment(void *user_data, const xmlChar* comment);
|
||||
void lwit_warning(void *user_data, const char* fmt, ...);
|
||||
void lwit_error(void* user_data, const char* fmt, ...);
|
||||
void lwit_fatalError(void* user_data, const char* fmt, ...);
|
||||
void lwit_locator(void* user_data, xmlSAXLocatorPtr locator);
|
||||
void lwit_notationDecl(void* user_data, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId);
|
||||
void lwit_unparsedEntityDecl(void* user_data,
|
||||
const xmlChar *name, const xmlChar *publicId,
|
||||
const xmlChar *systemId, const xmlChar *notationName);
|
||||
void lwit_elementDecl(void* user_date, const xmlChar *name, int type, xmlElementContentPtr content);
|
||||
void lwit_attributeDecl(void *user_data, const xmlChar *elem, const xmlChar *fullname, int type, int def, const xmlChar *defaultValue, xmlEnumerationPtr tree);
|
||||
void lwit_entityDecl(void* user_data, const xmlChar *name, int type, const xmlChar *publicId, const xmlChar *systemId, xmlChar *content);
|
||||
void lwit_setFeature(xmlParserCtxtPtr context, const char* name, bool value);
|
||||
bool lwit_getFeature(xmlParserCtxtPtr context, const char* name);
|
||||
xmlEntityPtr lwit_getEntity(void* user_data, const xmlChar* name);
|
||||
xmlParserInputPtr lwit_resolveEntity(void* user_data, const xmlChar* publicId, const xmlChar* systemId);
|
||||
xmlSAXHandler* lwit_SaxHandler();
|
||||
|
||||
class libxml2_base
|
||||
{
|
||||
protected:
|
||||
|
@ -90,31 +116,6 @@ class libxml2_base
|
|||
friend xmlParserInputPtr lwit_resolveEntity(void* user_data, const xmlChar* publicId, const xmlChar* systemId);
|
||||
}; // class libxml2_base
|
||||
|
||||
void lwit_startDocument(void* user_data);
|
||||
void lwit_endDocument(void* user_data);
|
||||
void lwit_startElement(void *user_data, const xmlChar* name, const xmlChar** attrs);
|
||||
void lwit_endElement(void *user_data, const xmlChar* name);
|
||||
void lwit_characters(void* user_data, const xmlChar* ch, int len);
|
||||
void lwit_cdata(void* user_data, const xmlChar* ch, int len);
|
||||
void lwit_ignorableWhitespace(void *user_data, const xmlChar* ch, int len);
|
||||
void lwit_processingInstruction(void *user_data, const xmlChar* target, const xmlChar* data);
|
||||
void lwit_comment(void *user_data, const xmlChar* comment);
|
||||
void lwit_warning(void *user_data, const char* fmt, ...);
|
||||
void lwit_error(void* user_data, const char* fmt, ...);
|
||||
void lwit_fatalError(void* user_data, const char* fmt, ...);
|
||||
void lwit_locator(void* user_data, xmlSAXLocatorPtr locator);
|
||||
void lwit_notationDecl(void* user_data, const xmlChar *name, const xmlChar *publicId, const xmlChar *systemId);
|
||||
void lwit_unparsedEntityDecl(void* user_data,
|
||||
const xmlChar *name, const xmlChar *publicId,
|
||||
const xmlChar *systemId, const xmlChar *notationName);
|
||||
void lwit_elementDecl(void* user_date, const xmlChar *name, int type, xmlElementContentPtr content);
|
||||
void lwit_attributeDecl(void *user_data, const xmlChar *elem, const xmlChar *fullname, int type, int def, const xmlChar *defaultValue, xmlEnumerationPtr tree);
|
||||
void lwit_entityDecl(void* user_data, const xmlChar *name, int type, const xmlChar *publicId, const xmlChar *systemId, xmlChar *content);
|
||||
void lwit_setFeature(xmlParserCtxtPtr context, const char* name, bool value);
|
||||
bool lwit_getFeature(xmlParserCtxtPtr context, const char* name);
|
||||
xmlEntityPtr lwit_getEntity(void* user_data, const xmlChar* name);
|
||||
xmlParserInputPtr lwit_resolveEntity(void* user_data, const xmlChar* publicId, const xmlChar* systemId);
|
||||
xmlSAXHandler* lwit_SaxHandler();
|
||||
} // extern "C"
|
||||
|
||||
} // namespace libxml2_wrapper_impl_tiddle
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef ARABICA_SAX_TAGGLE_HTML_SCANNER_HPP
|
||||
#define ARABICA_SAX_TAGGLE_HTML_SCANNER_HPP
|
||||
|
||||
#include <sstream>
|
||||
#include <SAX/SAXException.hpp>
|
||||
#include <SAX/Locator.hpp>
|
||||
#include <XML/XMLCharacterClasses.hpp>
|
||||
|
@ -473,7 +474,9 @@ public:
|
|||
outputBuffer_.clear();
|
||||
break;
|
||||
default:
|
||||
throw std::runtime_error("Can't process state " + action);
|
||||
throw std::runtime_error(
|
||||
"Can't process state " + static_cast<std::stringstream const&>(
|
||||
std::stringstream() << action).str());
|
||||
} // switch ...
|
||||
state_ = nextState_;
|
||||
} // while (state_ != S_DONE)
|
||||
|
|
|
@ -20,10 +20,10 @@ namespace {
|
|||
|
||||
static const Tab tab[] =
|
||||
{
|
||||
{ char(0x80), char(0x00), 0*6, 0x7F, }, // 1 byte sequence
|
||||
{ char(0xE0), char(0xC0), 1*6, 0x7FF, }, // 2 byte sequence
|
||||
{ char(0xF0), char(0xE0), 2*6, 0xFFFF, }, // 3 byte sequence
|
||||
{ 0, 0, 0, 0, } // end of table
|
||||
{ (unsigned char)(0x80), (unsigned char)(0x00), 0*6, 0x7F, }, // 1 byte sequence
|
||||
{ (unsigned char)(0xE0), (unsigned char)(0xC0), 1*6, 0x7FF, }, // 2 byte sequence
|
||||
{ (unsigned char)(0xF0), (unsigned char)(0xE0), 2*6, 0xFFFF, }, // 3 byte sequence
|
||||
{ 0, 0, 0, 0, } // end of table
|
||||
};
|
||||
} // namespace
|
||||
|
||||
|
|
Loading…
Reference in a new issue