Date: Tuesday, March 6, 2007 @ 15:10:12
  Author: csaba
    Path: /cvsroot/carob/libmysequoia

Modified: src/Converter.cpp (1.4 -> 1.5) test/TestConverter.cpp (1.1 ->
          1.2)

Transparently convert latin1 to cp1252 character set.


------------------------+
 src/Converter.cpp      |   14 +++++++++++---
 test/TestConverter.cpp |   14 +++++++++++++-
 2 files changed, 24 insertions(+), 4 deletions(-)


Index: libmysequoia/src/Converter.cpp
diff -u libmysequoia/src/Converter.cpp:1.4 libmysequoia/src/Converter.cpp:1.5
--- libmysequoia/src/Converter.cpp:1.4  Wed Jan 24 10:07:31 2007
+++ libmysequoia/src/Converter.cpp      Tue Mar  6 15:10:12 2007
@@ -23,6 +23,8 @@
 
 #include <errno.h>
 
+#include <algorithm>
+
 using namespace std;
 
 Converter::Converter() : cd_from(iconv_t(-1)), cd_to(iconv_t(-1))
@@ -48,10 +50,16 @@
 #else
        const char * wchar_codeset = "WCHAR_T";
 #endif
- 
+
+  string from_code = code;
+  transform(from_code.begin(), from_code.end(), from_code.begin(), tolower);
+  if (from_code == "latin1") {
+       from_code = "cp1252";
+  }
+   
   close();
-  cd_from = iconv_open(code.c_str(), wchar_codeset);
-  cd_to = iconv_open(wchar_codeset, code.c_str());
+  cd_from = iconv_open(from_code.c_str(), wchar_codeset);
+  cd_to = iconv_open(wchar_codeset, from_code.c_str());
   return ((cd_from != iconv_t(-1)) && (cd_to != iconv_t(-1)));
 }
 
Index: libmysequoia/test/TestConverter.cpp
diff -u libmysequoia/test/TestConverter.cpp:1.1 
libmysequoia/test/TestConverter.cpp:1.2
--- libmysequoia/test/TestConverter.cpp:1.1     Fri Nov  3 14:52:30 2006
+++ libmysequoia/test/TestConverter.cpp Tue Mar  6 15:10:12 2007
@@ -41,8 +41,20 @@
   string s_in, s_out;
   wstring ws;
   
-  for (int i = 0; i < 256; i++)
+  for (int i = 0; i < 129; i++)
     s_in += (char)i;
+  
+  for (int i = 130; i < 141; i++)
+       s_in += (char)i;
+       
+  for (int i = 142; i < 143; i++)
+       s_in += (char)i;  
+
+  for (int i = 145; i < 157; i++)
+       s_in += (char)i;  
+
+  for (int i = 158; i < 256; i++)
+       s_in += (char)i;  
 
   Converter conv("latin1");
   // convert to wchar_t

_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits

Reply via email to