← Back to team overview

zorba-coders team mailing list archive

[Merge] lp:~paul-lucas/zorba/bug-942808 into lp:zorba

 

Paul J. Lucas has proposed merging lp:~paul-lucas/zorba/bug-942808 into lp:zorba.

Requested reviews:
  Paul J. Lucas (paul-lucas)
  Matthias Brantner (matthias-brantner)
Related bugs:
  Bug #942808 in Zorba: "ICU streambuf doesn't, in fact, equate ASCII to US-ASCII"
  https://bugs.launchpad.net/zorba/+bug/942808

For more details, see:
https://code.launchpad.net/~paul-lucas/zorba/bug-942808/+merge/95027

Fixed bug 942808.
-- 
https://code.launchpad.net/~paul-lucas/zorba/bug-942808/+merge/95027
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'src/util/icu_streambuf.cpp'
--- src/util/icu_streambuf.cpp	2012-02-20 18:12:06 +0000
+++ src/util/icu_streambuf.cpp	2012-02-28 19:36:18 +0000
@@ -100,13 +100,19 @@
   return conv;
 }
 
-bool icu_streambuf::is_necessary( char const *charset ) {
-  //
-  // Checking for "US-ASCII" explicitly isn't necessary since ICU knows about
-  // aliases.
-  //
-  return  ucnv_compareNames( charset, "ASCII" )
-      &&  ucnv_compareNames( charset, "UTF-8" );
+bool icu_streambuf::is_necessary( char const *cc_charset ) {
+  //
+  // Apparently, ucnv_compareNames() doesn't consider "US-ASCII" an alias for
+  // "ASCII", so check for "US-ASCII" ourselves.
+  //
+  zstring charset( cc_charset );
+  ascii::trim_whitespace( charset );
+  ascii::to_upper( charset );
+  if ( charset == "US-ASCII" )
+    cc_charset += 3; // skip "US-"
+
+  return  ucnv_compareNames( cc_charset, "ASCII" )
+      &&  ucnv_compareNames( cc_charset, "UTF-8" );
 }
 
 bool icu_streambuf::is_supported( char const *charset ) {


Follow ups