diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2011-06-04 18:03:06 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2011-06-04 18:03:06 +0200 |
commit | 77e60a658e3f6a9a2fecbafee484f1c5efca6577 (patch) | |
tree | 885457ced91f1b1802154aac39db63f87fdc7203 /glcdskin/xml.h | |
parent | f55d4bed0d3c14e4c537ee2b103b465b84b6d955 (diff) | |
download | graphlcd-base-77e60a658e3f6a9a2fecbafee484f1c5efca6577.tar.gz graphlcd-base-77e60a658e3f6a9a2fecbafee484f1c5efca6577.tar.bz2 |
skins are now UTF8 per definition, on non UTF-8 systems text-data will be converted automatically; additional optional error character in encodedCharAdjustCounter(), encodedCharAdjustCounter() now returns success; code cleanups
Diffstat (limited to 'glcdskin/xml.h')
-rw-r--r-- | glcdskin/xml.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/glcdskin/xml.h b/glcdskin/xml.h index 009679c..30210cc 100644 --- a/glcdskin/xml.h +++ b/glcdskin/xml.h @@ -15,6 +15,7 @@ #include <string> #include <map> +#include <iconv.h> namespace GLCD { @@ -36,7 +37,10 @@ private: bool skipping; int state; int linenr; - int delim; + unsigned int delim; + std::string sysEncoding; + bool sysIsUTF8; + iconv_t iconv_cd; std::string data, cdata, tag, attrn, attrv; std::map<std::string, std::string> attr; @@ -49,11 +53,12 @@ private: protected: bool IsTokenChar(bool start, int c); - int ReadChar(int c); + int ReadChar(unsigned int c, int char_size); public: - cXML(const std::string & file); - cXML(const char * mem, unsigned int len); + cXML(const std::string & file, const std::string sysCharset = "UTF-8"); + //cXML(const char * mem, unsigned int len); + ~cXML(); void SetNodeStartCB(XML_NODE_START_CB(cb)); void SetNodeEndCB(XML_NODE_END_CB(cb)); |