[Aptitude-svn-commit] r3569 - in branches/aptitude-0.3/aptitude: . src

Daniel Burrows dburrows@costa.debian.org
Sat, 02 Jul 2005 18:55:12 +0000


Author: dburrows
Date: Sat Jul  2 18:55:09 2005
New Revision: 3569

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/main.cc
Log:
Add default transcoding error handlers.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Sat Jul  2 18:55:09 2005
@@ -1,5 +1,10 @@
 2005-07-02  Daniel Burrows  <dburrows@debian.org>
 
+	* src/main.cc:
+
+	  Add default transcoding error handlers that push an error on the
+	  apt error stack.
+
 	* src/vs_progress.cc:
 
 	  Update the core progress bar for wide characters.

Modified: branches/aptitude-0.3/aptitude/src/main.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/main.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/main.cc	Sat Jul  2 18:55:09 2005
@@ -36,6 +36,7 @@
 #include <generic/config_signal.h>
 
 #include <vscreen/config/keybindings.h>
+#include <vscreen/transcode.h>
 #include <vscreen/vscreen.h>
 #include <vscreen/vs_util.h>
 
@@ -64,6 +65,25 @@
 #include "pkg_grouppolicy.h"
 #include "pkg_view.h"
 
+/** Handles a coding error using the apt error mechanism. */
+std::wstring handle_mbtow_error(int error,
+				const std::wstring &partial,
+				const std::string &input)
+{
+  _error->Errno("iconv", _("Can't decode multibyte string after \"%ls\""),
+		partial.c_str());
+  return partial;
+}
+
+std::string handle_wtomb_error(int error,
+			       const std::string &partial,
+			       const std::wstring &input)
+{
+  _error->Errno("iconv", _("Can't decode wide-character string after \"%s\""),
+		partial.c_str());
+  return partial;
+}
+
 static void show_version()
 {
   printf(_("%s %s compiled at %s %s\n"),
@@ -164,6 +184,9 @@
 {
   srandom(time(0));
 
+  transcode_mbtow_err=handle_mbtow_error;
+  transcode_wtomb_err=handle_wtomb_error;
+
   setlocale(LC_ALL, "");
   bindtextdomain(PACKAGE, LOCALEDIR);
   textdomain(PACKAGE);