aboutsummaryrefslogtreecommitdiff
path: root/libxsde/xsde/cxx/serializer/context.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-01-07 13:50:11 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-01-07 13:50:11 +0200
commit76d23e639004517db8f9469d64ac1789f8449365 (patch)
treedbafc8c4e31a97f74046c98af19d0fe76f360001 /libxsde/xsde/cxx/serializer/context.hxx
parentc30caae30bc64974eeaa1e81aa2abdc203f5120d (diff)
Add support for ISO-8859-1 as application encoding
New runtime configuration parameter, XSDE_ENCODING. New option, --char-encoding. New test, tests/cxx/hybrid/iso8859-1.
Diffstat (limited to 'libxsde/xsde/cxx/serializer/context.hxx')
-rw-r--r--libxsde/xsde/cxx/serializer/context.hxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/libxsde/xsde/cxx/serializer/context.hxx b/libxsde/xsde/cxx/serializer/context.hxx
index d09bb4d..d2cec00 100644
--- a/libxsde/xsde/cxx/serializer/context.hxx
+++ b/libxsde/xsde/cxx/serializer/context.hxx
@@ -11,6 +11,7 @@
#include <stddef.h> // size_t
#include <xsde/c/genx/genx.h>
+#include <xsde/cxx/string.hxx>
#ifndef XSDE_EXCEPTIONS
# include <xsde/cxx/sys-error.hxx>
@@ -251,6 +252,23 @@ namespace xsde
const void* type_id_;
#endif
+ // Support for ISO-8859-1 conversion.
+ //
+#ifdef XSDE_ENCODING_ISO8859_1
+ protected:
+ const char*
+ conv_data (const char* iso_s, size_t utf_n, string& var);
+
+ const char*
+ conv_data (const char* iso_s, size_t iso_n, size_t utf_n, string& var);
+
+ const char*
+ conv_name (const char* iso_s, size_t utf_n, char* fix, string& var);
+
+ char data_buf_[256];
+ char name_buf1_[128];
+ char name_buf2_[128]; // Keep buf1 and buf2 sizes the same.
+#endif
};
}
}