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

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


Author: dburrows
Date: Sat Jul  2 18:48:23 2005
New Revision: 3567

Modified:
   branches/aptitude-0.3/aptitude/ChangeLog
   branches/aptitude-0.3/aptitude/src/ui.cc
Log:
Fix ui.cc for wide characters.

Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog	(original)
+++ branches/aptitude-0.3/aptitude/ChangeLog	Sat Jul  2 18:48:23 2005
@@ -1,5 +1,9 @@
 2005-07-02  Daniel Burrows  <dburrows@debian.org>
 
+	* src/ui.cc:
+
+	  Update ui.cc to use wide characters internally.
+
 	* src/apt_info_tree.cc, src/apt_info_tree.h:
 
 	  Update copyright info.

Modified: branches/aptitude-0.3/aptitude/src/ui.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/ui.cc	(original)
+++ branches/aptitude-0.3/aptitude/src/ui.cc	Sat Jul  2 18:48:23 2005
@@ -182,9 +182,10 @@
 }
 
 // Search callback
-static void pager_do_search(std::string s, vs_pager *p)
+static void pager_do_search(const std::wstring &s, vs_pager *p)
 {
-  p->search_for(s);
+  // FIXME: the pager should be converted to use wide characters.
+  p->search_for(transcode(s));
 }
 
 // Handles "search" dialogs for pagers
@@ -212,7 +213,7 @@
   layout->location_changed.connect(sigc::mem_fun(*s, &vs_scrollbar::set_slider));
   s->scrollbar_interaction.connect(sigc::mem_fun(*layout, &vs_text_layout::scroll));
 
-  return vs_dialog_ok(t, NULL, _("Ok"), get_style("Error"));
+  return vs_dialog_ok(t, NULL, transcode(_("Ok")), get_style("Error"));
 }
 
 // blah, I hate C++
@@ -514,7 +515,7 @@
 
   // FIXME: do the config lookup inside the package-view code?
   basic_format.push_back(package_view_item("static1",
-					   parse_columns(aptcfg->Find(PACKAGE "::UI::Package-Header-Format", default_pkgheaderdisplay),
+					   parse_columns(transcode(aptcfg->Find(PACKAGE "::UI::Package-Header-Format", default_pkgheaderdisplay)),
 							 pkg_item::pkg_columnizer::parse_column_type,
 							 pkg_item::pkg_columnizer::defaults),
 					   PACKAGE "::UI::Package-Header-Format",
@@ -533,7 +534,7 @@
 					   true));
 
   basic_format.push_back(package_view_item("static2",
-					   parse_columns(aptcfg->Find(PACKAGE "::UI::Package-Status-Format", default_pkgstatusdisplay),
+					   parse_columns(transcode(aptcfg->Find(PACKAGE "::UI::Package-Status-Format", default_pkgstatusdisplay)),
 							 pkg_item::pkg_columnizer::parse_column_type,
 							 pkg_item::pkg_columnizer::defaults),
 					   PACKAGE "::UI::Package-Status-Format",
@@ -606,7 +607,7 @@
   grp=parse_grouppolicy(grpstr);
 
   pkg_tree *tree=new pkg_tree(grpstr.c_str(), grp, NULL);
-  tree->set_limit("!~v");
+  tree->set_limit(transcode("!~v"));
   //tree->set_hierarchical(false);
 
   add_main_widget(make_default_view(tree,
@@ -792,9 +793,9 @@
 
       main_stacked->add_visible_widget(vs_dialog_yesno(sequence_fragment(frags),
 						       arg(sigc::ptr_fun(install_or_remove_packages)),
-						       _("Really Continue"),
+						       transcode(_("Really Continue")),
 						       NULL,
-						       _("Abort Installation"),
+						       transcode(_("Abort Installation")),
 						       get_style("TrustWarning"),
 						       true,
 						       false),
@@ -840,7 +841,7 @@
 	}
 
       if(aptcfg->Exists(PACKAGE "::UI::Preview-Limit"))
-	active_preview_tree=new pkg_tree(grpstr.c_str(), grp, aptcfg->Find(PACKAGE "::UI::Preview-Limit").c_str());
+	active_preview_tree=new pkg_tree(grpstr.c_str(), grp, transcode(aptcfg->Find(PACKAGE "::UI::Preview-Limit").c_str()));
       else
 	active_preview_tree=new pkg_tree(grpstr.c_str(), grp, NULL);
 
@@ -954,9 +955,9 @@
 	      popup_widget(vs_dialog_yesno(wrapbox(text_fragment(_("Installing/removing packages requires administrative privileges, which you currently do not have.  Would you like to change to the root account?"))),
 					   arg(sigc::bind(sigc::ptr_fun(&do_su_to_root),
 						      "-i")),
-					   _("Become root"),
+					   transcode(_("Become root")),
 					   arg(sigc::ptr_fun(&check_package_trust)),
-					   _("Don't become root"),
+					   transcode(_("Don't become root")),
 					   get_style("Error")));
 	    }
 	}
@@ -1069,9 +1070,9 @@
 	  popup_widget(vs_dialog_yesno(wrapbox(text_fragment(_("Updating the package lists requires administrative privileges, which you currently do not have.  Would you like to change to the root account?"))),
 				       arg(sigc::bind(sigc::ptr_fun(&do_su_to_root),
 						      "-u")),
-				       _("Become root"),
+				       transcode(_("Become root")),
 				       arg(sigc::ptr_fun(&really_do_update_lists)),
-				       _("Don't become root"),
+				       transcode(_("Don't become root")),
 				       get_style("Error")));
 	}
     }
@@ -1291,14 +1292,14 @@
   popup_widget(make_solution_dialog(), true);
 }
 
-static void handle_dump_resolver_response(string s)
+static void handle_dump_resolver_response(const wstring &s)
 {
   if((*apt_cache_file)->resolver_exists())
     {
-      ofstream out(s.c_str());
+      ofstream out(transcode(s).c_str());
 
       if(!out)
-	_error->Errno("dump_resolver", _("Unable to open %s"), s.c_str());
+	_error->Errno("dump_resolver", _("Unable to open %ls"), s.c_str());
       else
 	{
 	  (*apt_cache_file)->dump_resolver(out);
@@ -1605,7 +1606,7 @@
 
   vs_menu *menu=new vs_menu(0, 0, 0, info);
 
-  main_menu->append_item(name, menu);
+  main_menu->append_item(transcode(name), menu);
 
   menu->item_highlighted.connect(sigc::bind(sigc::ptr_fun(do_show_menu_description),
 					    menu_description));
@@ -1617,7 +1618,7 @@
 class help_bar:public vs_label
 {
 public:
-  help_bar(string txt, const style &st):vs_label(txt, st)
+  help_bar(const wstring &txt, const style &st):vs_label(txt, st)
   {
     set_visibility();
   }
@@ -1716,14 +1717,14 @@
   main_table->show();
 
   // FIXME: highlight the keys.
-  string menu_key=global_bindings.readable_keyname("ToggleMenuActive"),
+  wstring menu_key=global_bindings.readable_keyname("ToggleMenuActive"),
     help_key=global_bindings.readable_keyname("Help"),
     quit_key=global_bindings.readable_keyname("Quit"),
     update_key=global_bindings.readable_keyname("UpdatePackageList"),
     install_key=global_bindings.readable_keyname("DoInstallRun");
 
-  char buf[512];
-  snprintf(buf, 512, _("%s: Menu  %s: Help  %s: Quit  %s: Update  %s: Download/Install/Remove Pkgs"),
+  wchar_t buf[512];
+  swprintf(buf, 512, transcode(_("%ls: Menu  %ls: Help  %ls: Quit  %ls: Update  %ls: Download/Install/Remove Pkgs")).c_str(),
 	   menu_key.c_str(),
 	   help_key.c_str(),
 	   quit_key.c_str(),
@@ -1803,8 +1804,8 @@
     w->show();
 }
 
-static void setup_main_widget(vscreen_widget *w, const std::string &menuref,
-			      const std::string &menudesc)
+static void setup_main_widget(vscreen_widget *w, const std::wstring &menuref,
+			      const std::wstring &menudesc)
 {
   vs_menu_item *menuentry=new vs_menu_item(menuref, "", menudesc);
 
@@ -1827,9 +1828,9 @@
     file_quit();
 }
 
-void add_main_widget(vscreen_widget *w, const std::string &menuref,
-		     const std::string &menudesc,
-		     const std::string &tabdesc)
+void add_main_widget(vscreen_widget *w, const std::wstring &menuref,
+		     const std::wstring &menudesc,
+		     const std::wstring &tabdesc)
 {
   setup_main_widget(w, menuref, menudesc);
   main_multiplex->add_widget(w, tabdesc);
@@ -1839,9 +1840,17 @@
   update_menubar_autohide();
 }
 
-void insert_main_widget(vscreen_widget *w, const std::string &menuref,
-			const std::string &menudesc,
-			const std::string &tabdesc)
+void add_main_widget(vscreen_widget *w, const std::string &menuref,
+		     const std::string &menudesc,
+		     const std::string &tabdesc)
+{
+  add_main_widget(w, transcode(menuref), transcode(menudesc),
+		  transcode(tabdesc));
+}
+
+void insert_main_widget(vscreen_widget *w, const std::wstring &menuref,
+			const std::wstring &menudesc,
+			const std::wstring &tabdesc)
 {
   setup_main_widget(w, menuref, menudesc);
   main_multiplex->add_widget_after(w, main_multiplex->visible_widget(), tabdesc);
@@ -1850,6 +1859,14 @@
   update_menubar_autohide();
 }
 
+void insert_main_widget(vscreen_widget *w, const std::string &menuref,
+			const std::string &menudesc,
+			const std::string &tabdesc)
+{
+  insert_main_widget(w, transcode(menuref),
+		     transcode(menudesc), transcode(tabdesc));
+}
+
 vscreen_widget *active_main_widget()
 {
   return main_multiplex->visible_widget();
@@ -1878,9 +1895,9 @@
 }
 
 download_manager *gen_download_progress(bool force_noninvasive,
-					const string &title,
-					const string &longtitle,
-					const string &tablabel,
+					const wstring &title,
+					const wstring &longtitle,
+					const wstring &tablabel,
 					slot0arg abortslot)
 {
   download_manager *m=new download_manager;
@@ -1913,7 +1930,7 @@
   return m;
 }
 
-static void do_prompt_string(string s,
+static void do_prompt_string(const wstring &s,
 			     vs_editline *e,
 			     sigc::slot0<void> realslot)
 {
@@ -1921,11 +1938,24 @@
   realslot();
 }
 
-void prompt_string(const std::string &prompt,
-		   const std::string &text,
-		   slotarg<sigc::slot1<void, string> > slot,
+download_manager *gen_download_progress(bool force_noninvasive,
+					const string &title,
+					const string &longtitle,
+					const string &tablabel,
+					slot0arg abortslot)
+{
+  return gen_download_progress(force_noninvasive,
+			       transcode(title),
+			       transcode(longtitle),
+			       transcode(tablabel),
+			       abortslot);
+}
+
+void prompt_string(const std::wstring &prompt,
+		   const std::wstring &text,
+		   slotarg<sigc::slot1<void, wstring> > slot,
 		   slotarg<sigc::slot0<void> > cancel_slot,
-		   slotarg<sigc::slot1<void, string> > changed_slot,
+		   slotarg<sigc::slot1<void, wstring> > changed_slot,
 		   vs_editline::history_list *history)
 {
   if(aptcfg->FindB(PACKAGE "::UI::Minibuf-Prompts"))
@@ -1960,6 +1990,17 @@
 				     true);
 }
 
+void prompt_string(const std::string &prompt,
+		   const std::string &text,
+		   slotarg<sigc::slot1<void, wstring> > slot,
+		   slotarg<sigc::slot0<void> > cancel_slot,
+		   slotarg<sigc::slot1<void, wstring> > changed_slot,
+		   vs_editline::history_list *history)
+{
+  prompt_string(transcode(prompt), transcode(text),
+		slot, cancel_slot, changed_slot, history);
+}
+
 static void do_prompt_yesno(int cval,
 			    bool deflt,
 			    slot0arg yesslot,
@@ -1984,7 +2025,7 @@
     }
 }
 
-void prompt_yesno(const std::string &prompt,
+void prompt_yesno(const std::wstring &prompt,
 		  bool deflt,
 		  slot0arg yesslot,
 		  slot0arg noslot)
@@ -1997,7 +2038,7 @@
       nostring+=_("no_key")[0];
       string yesnostring=deflt?yesstring+nostring:nostring+yesstring;
 
-      vs_statuschoice *c=new vs_statuschoice(prompt, yesnostring.c_str());
+      vs_statuschoice *c=new vs_statuschoice(prompt, transcode(yesnostring));
       c->chosen.connect(sigc::bind(sigc::ptr_fun(&do_prompt_yesno),
 				   deflt,
 				   yesslot,
@@ -2014,6 +2055,14 @@
 				     true);
 }
 
+void prompt_yesno(const std::string &prompt,
+		  bool deflt,
+		  slot0arg yesslot,
+		  slot0arg noslot)
+{
+  return prompt_yesno(transcode(prompt), deflt, yesslot, noslot);
+}
+
 void show_message(fragment *msg,
 		  slot0arg okslot,
 		  const style &st)