summaryrefslogtreecommitdiff
path: root/glcdskin/xml.h
diff options
context:
space:
mode:
authormrwastl <mrwastl@users.sourceforge.net>2011-06-04 18:03:06 +0200
committermrwastl <mrwastl@users.sourceforge.net>2011-06-04 18:03:06 +0200
commit77e60a658e3f6a9a2fecbafee484f1c5efca6577 (patch)
tree885457ced91f1b1802154aac39db63f87fdc7203 /glcdskin/xml.h
parentf55d4bed0d3c14e4c537ee2b103b465b84b6d955 (diff)
downloadgraphlcd-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.h13
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));