]> git.saurik.com Git - apt.git/commitdiff
replace unknown multibytes with ? in UTF8ToCharset (Closes: #545208)
authorDavid Kalnischkies <kalnischkies@gmail.com>
Tue, 8 Sep 2009 07:47:12 +0000 (09:47 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Tue, 8 Sep 2009 07:47:12 +0000 (09:47 +0200)
instead of ignoring the returncode and truncating the string on error

apt-pkg/contrib/strutl.cc
debian/changelog

index 1683868c8a398c72fb9a0e61d97233d3ac0fa56c..4c05f2df880a2200f7872d863fbdeef425f4dd75 100644 (file)
@@ -67,9 +67,20 @@ bool UTF8ToCodeset(const char *codeset, const string &orig, string *dest)
   outbuf = new char[insize+1];
   outptr = outbuf;
 
   outbuf = new char[insize+1];
   outptr = outbuf;
 
-  iconv(cd, &inptr, &insize, &outptr, &outsize);
-  *outptr = '\0';
+  while (insize != 0)
+  {
+     size_t const err = iconv(cd, &inptr, &insize, &outptr, &outsize);
+     if (err == (size_t)(-1))
+     {
+       insize--;
+       outsize++;
+       inptr++;
+       *outptr = '?';
+       outptr++;
+     }
+  }
 
 
+  *outptr = '\0';
   *dest = outbuf;
   delete[] outbuf;
   
   *dest = outbuf;
   delete[] outbuf;
   
index 349c95038fcae95d8a7c93de3db789b2f106f943..34691b1fb28da724425590db9a0a09c83e823900 100644 (file)
@@ -20,6 +20,8 @@ apt (0.7.24) UNRELEASED; urgency=low
     - simplify the makefiles needed for po4a manpages
   * apt-pkg/contrib/configuration.cc:
     - add a helper to easily get a vector of strings from the config
     - simplify the makefiles needed for po4a manpages
   * apt-pkg/contrib/configuration.cc:
     - add a helper to easily get a vector of strings from the config
+  * apt-pkg/contrib/strutl.cc:
+    - replace unknown multibytes with ? in UTF8ToCharset (Closes: #545208)
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Fri, 28 Aug 2009 09:40:08 +0200
 
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Fri, 28 Aug 2009 09:40:08 +0200