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

Daniel Burrows dburrows@costa.debian.org
Sun, 26 Jun 2005 10:45:16 +0000


Author: dburrows
Date: Sun Jun 26 10:45:13 2005
New Revision: 3445

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/pkg_columnizer.cc
Log:
Transcode column configuration data.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Sun Jun 26 10:45:13 2005
@@ -2,6 +2,10 @@
 
 	* src/pkg_columnizer.cc:
 
+	  Transcode column definitions before parsing.
+
+	* src/pkg_columnizer.cc:
+
 	  Mark an overlooked string for translation.
 
 	* src/vscreen/columnify.cc, src/vscreen/columnify.h:

Modified: branches/aptitude-0.3/aptitude/src/pkg_columnizer.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/pkg_columnizer.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/pkg_columnizer.cc	Sun Jun 26 10:45:13 2005
@@ -34,6 +34,8 @@
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/version.h>
 
+#include <vscreen/transcode.h>
+
 #include <unistd.h>
 
 column_definition_list *pkg_item::pkg_columnizer::columns=NULL;
@@ -641,14 +643,25 @@
     delete columns;
   if(force_update || !columns)
     {
-      columns=parse_columns(aptcfg->Find(PACKAGE "::UI::Package-Display-Format", default_pkgdisplay),
-			    pkg_columnizer::parse_column_type,
-			    pkg_columnizer::defaults);
+      std::wstring cfg;
+
+      if(!transcode(aptcfg->Find(PACKAGE "::UI::Package-Display-Format",
+				 default_pkgdisplay).c_str(),
+		    cfg))
+	_error->Errno("iconv", _("Unable to transcode package display format after \"%ls\""), cfg.c_str());
+      else
+	columns=parse_columns(cfg,
+			      pkg_columnizer::parse_column_type,
+			      pkg_columnizer::defaults);
       if(!columns)
 	{
-	  columns=parse_columns(default_pkgdisplay,
-				pkg_columnizer::parse_column_type,
-				pkg_columnizer::defaults);
+	  cfg.clear();
+	  if(!transcode(default_pkgdisplay, cfg))
+	    _error->Errno("iconv", _("Unable to transcode package display format after \"%ls\""), cfg.c_str());
+	  else
+	    columns=parse_columns(cfg,
+				  pkg_columnizer::parse_column_type,
+				  pkg_columnizer::defaults);
 	  if(!columns)
 	    {
 	      _error->Warning(_("Internal error: Default column string is unparsable"));