Review: Approve

Solid change! Lots of small but impactful improvements here.

Diff comments:

> === modified file 'src/base/scoped_timer.cc'
> --- src/base/scoped_timer.cc  2014-07-05 13:14:42 +0000
> +++ src/base/scoped_timer.cc  2014-10-27 10:39:23 +0000
> @@ -33,8 +33,8 @@
>  
>  ScopedTimer::~ScopedTimer() {
>       uint32_t ms_in_existance = SDL_GetTicks() - startime_;
> -
> -     log("%s\n", (boost::format(message_) % ms_in_existance).str().c_str());

fwiw this is actually save: the method log() gets called with a temporary of 
type string that is guaranteed to live for the duration of the function call. 
Therefore it's .c_str() pointer also stays valid. Since log() is not keeping a 
copy of the c_str() pointer that oulives the lifetime of the std::string, this 
does not lead to invalid memory.

However, pulling it out is also fine.

> +     const std::string logmessage = (boost::format(message_) % 
> ms_in_existance).str();
> +     log("%s\n", logmessage.c_str());
>  }
>  
>  uint32_t ScopedTimer::ms_since_last_query() {
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_load_map.cc'
> --- src/editor/ui_menus/editor_main_menu_load_map.cc  2014-09-30 05:41:55 
> +0000
> +++ src/editor/ui_menus/editor_main_menu_load_map.cc  2014-10-27 10:39:23 
> +0000
> @@ -177,7 +177,7 @@
>  
>               m_size     ->set_text((boost::format(_("%1$ix%2$i"))
>                                                                         % 
> map.get_width()
> -                                                                       % 
> map.get_height()).str().c_str());
> +                                                                       % 
> map.get_height()).str());

+1 for these changes: not using c_str() when not needed can be quite beneficial 
for performance.

>       } else {
>               m_name     ->set_text("");
>               m_name     ->set_tooltip("");
> @@ -207,13 +207,12 @@
>  #else
>               m_parentdir = m_curdir.substr(0, m_curdir.rfind('\\'));
>  #endif
> -             std::string parent_string =
> +
> +             m_ls->add
>                               /** TRANSLATORS: Parent directory */
> -                             (boost::format("\\<%s\\>") % _("parent")).str();
> -             m_ls->add
> -                     (parent_string.c_str(),
> -                      m_parentdir.c_str(),
> -                      g_gr->images().get("pics/ls_dir.png"));
> +                             ((boost::format("\\<%s\\>") % 
> _("parent")).str(),
> +                              m_parentdir.c_str(),
> +                              g_gr->images().get("pics/ls_dir.png"));
>       }
>  
>       const FilenameSet::const_iterator mapfiles_end = m_mapfiles.end();
> @@ -248,7 +247,7 @@
>                       try {
>                               map_loader->preload_map(true);
>                               m_ls->add
> -                                     
> (FileSystem::filename_without_ext(name).c_str(),
> +                                     (FileSystem::filename_without_ext(name),
>                                        name,
>                                        g_gr->images().get
>                                                
> (dynamic_cast<WidelandsMapLoader*>(map_loader.get())
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_map_options.cc'
> --- src/editor/ui_menus/editor_main_menu_map_options.cc       2014-09-30 
> 05:41:55 +0000
> +++ src/editor/ui_menus/editor_main_menu_map_options.cc       2014-10-27 
> 10:39:23 +0000
> @@ -118,7 +118,7 @@
>  
>       m_size     ->set_text((boost::format(_("%1$ix%2$i"))
>                                                                 % 
> map.get_width()
> -                                                               % 
> map.get_height()).str().c_str());
> +                                                               % 
> map.get_height()).str());
>       m_author->set_text(map.get_author());
>       m_name  ->set_text(map.get_name());
>       m_nrplayers->set_text(std::to_string(static_cast<unsigned 
> int>(map.get_nrplayers())));
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_new_map.cc'
> --- src/editor/ui_menus/editor_main_menu_new_map.cc   2014-09-30 05:41:55 
> +0000
> +++ src/editor/ui_menus/editor_main_menu_new_map.cc   2014-10-27 10:39:23 
> +0000
> @@ -62,7 +62,7 @@
>       }
>  
>       m_width = new UI::Textarea(this, posx + spacing + 20, posy,
> -                                                                             
> (boost::format(_("Width: %u")) % 
> Widelands::MAP_DIMENSIONS[m_w]).str().c_str());
> +                                                                             
> (boost::format(_("Width: %u")) % Widelands::MAP_DIMENSIONS[m_w]).str());
>  
>       UI::Button * widthupbtn = new UI::Button
>               (this, "width_up",
> @@ -82,7 +82,7 @@
>  
>       m_height = new UI::Textarea(this, posx + spacing + 20, posy,
>                                                                               
>  (boost::format(_("Height: %u"))
> -                                                                             
>   % Widelands::MAP_DIMENSIONS[m_h]).str().c_str());
> +                                                                             
>   % Widelands::MAP_DIMENSIONS[m_h]).str());
>  
>       UI::Button * heightupbtn = new UI::Button
>               (this, "height_up",
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_random_map.cc'
> --- src/editor/ui_menus/editor_main_menu_random_map.cc        2014-10-12 
> 06:26:38 +0000
> +++ src/editor/ui_menus/editor_main_menu_random_map.cc        2014-10-27 
> 10:39:23 +0000
> @@ -123,7 +123,7 @@
>  
>       m_width = new UI::Textarea(this, posx + spacing + height, posy,
>                                                                               
> (boost::format(_("Width: %u"))
> -                                                                             
>  % Widelands::MAP_DIMENSIONS[m_w]).str().c_str());
> +                                                                             
>  % Widelands::MAP_DIMENSIONS[m_w]).str());
>  
>       posy += height + 2 * spacing;
>  
> @@ -131,7 +131,7 @@
>  
>       m_height = new UI::Textarea(this, posx + spacing + height, posy,
>                                                                               
>  (boost::format(_("Height: %u"))
> -                                                                             
>   % Widelands::MAP_DIMENSIONS[m_h]).str().c_str());
> +                                                                             
>   % Widelands::MAP_DIMENSIONS[m_h]).str());
>  
>       UI::Button * heightupbtn = new UI::Button
>               (this, "height_up",
> @@ -171,7 +171,7 @@
>               (boost::bind(&MainMenuNewRandomMap::button_clicked, this, 
> ButtonId::WATER_MINUS));
>  
>       m_water = new UI::Textarea(this, posx + spacing + height, posy,
> -                                                                             
> (boost::format(_("Water: %i %%")) % m_waterval).str().c_str());
> +                                                                             
> (boost::format(_("Water: %i %%")) % m_waterval).str());
>  
>       posy += height + 2 * spacing;
>  
> @@ -196,7 +196,7 @@
>               (boost::bind(&MainMenuNewRandomMap::button_clicked, this, 
> ButtonId::LAND_MINUS));
>  
>       m_land = new UI::Textarea(this, posx + spacing + height, posy,
> -                                                                       
> (boost::format(_("Land: %i %%")) % m_landval).str().c_str());
> +                                                                       
> (boost::format(_("Land: %i %%")) % m_landval).str());
>  
>       posy += height + 2 * spacing;
>  
> @@ -221,7 +221,7 @@
>               (boost::bind(&MainMenuNewRandomMap::button_clicked, this, 
> ButtonId::WASTE_MINUS));
>  
>       m_wasteland = new UI::Textarea(this, posx + spacing + height, posy,
> -                                                                             
>          (boost::format(_("Wasteland: %i %%")) % 
> m_wastelandval).str().c_str());
> +                                                                             
>          (boost::format(_("Wasteland: %i %%")) % m_wastelandval).str());
>  
>       posy += height + 2 * spacing;
>  
> @@ -230,7 +230,7 @@
>       // ---------- Mountains -----------
>  
>       m_mountains = new UI::Textarea(this, posx + spacing + height, posy,
> -                                                                             
>          (boost::format(_("Mountains: %i %%")) % 
> m_mountainsval).str().c_str());
> +                                                                             
>          (boost::format(_("Mountains: %i %%")) % m_mountainsval).str());
>  
>       posy += height + 2 * spacing;
>  
> @@ -317,7 +317,7 @@
>  
>       m_players = new UI::Textarea(this, posx + spacing + height, posy,
>                                                                               
>   (boost::format(_("Players: %u"))
> -                                                                             
>         % static_cast<unsigned int>(m_pn)).str().c_str());
> +                                                                             
>         % static_cast<unsigned int>(m_pn)).str());
>  
>       posy += height + 2 * spacing;
>  
> @@ -424,14 +424,14 @@
>       if (m_h <  0)                        m_h = 0;
>       if (m_h >= NUMBER_OF_MAP_DIMENSIONS) m_h = NUMBER_OF_MAP_DIMENSIONS - 1;
>  
> -     m_width ->set_text((boost::format(_("Width: %u")) % 
> Widelands::MAP_DIMENSIONS[m_w]).str().c_str());
> -     m_height->set_text((boost::format(_("Height: %u")) % 
> Widelands::MAP_DIMENSIONS[m_h]).str().c_str());
> -     m_water->set_text((boost::format(_("Water: %i %%")) % 
> m_waterval).str().c_str());
> -     m_land->set_text((boost::format(_("Land: %i %%")) % 
> m_landval).str().c_str());
> -     m_wasteland->set_text((boost::format(_("Wasteland: %i %%")) % 
> m_wastelandval).str().c_str());
> -     m_mountains->set_text((boost::format(_("Mountains: %i %%")) % 
> m_mountainsval).str().c_str());
> +     m_width ->set_text((boost::format(_("Width: %u")) % 
> Widelands::MAP_DIMENSIONS[m_w]).str());
> +     m_height->set_text((boost::format(_("Height: %u")) % 
> Widelands::MAP_DIMENSIONS[m_h]).str());
> +     m_water->set_text((boost::format(_("Water: %i %%")) % 
> m_waterval).str());
> +     m_land->set_text((boost::format(_("Land: %i %%")) % m_landval).str());
> +     m_wasteland->set_text((boost::format(_("Wasteland: %i %%")) % 
> m_wastelandval).str());
> +     m_mountains->set_text((boost::format(_("Mountains: %i %%")) % 
> m_mountainsval).str());
>       m_players->set_text((boost::format(_("Players: %u"))
> -                                                             % 
> static_cast<unsigned int>(m_pn)).str().c_str());
> +                                                             % 
> static_cast<unsigned int>(m_pn)).str());
>  
>       nr_edit_box_changed();  // Update ID String
>  }
> 
> === modified file 'src/editor/ui_menus/editor_main_menu_save_map.cc'
> --- src/editor/ui_menus/editor_main_menu_save_map.cc  2014-09-30 05:41:55 
> +0000
> +++ src/editor/ui_menus/editor_main_menu_save_map.cc  2014-10-27 10:39:23 
> +0000
> @@ -236,7 +236,7 @@
>               m_nrplayers->set_text(std::to_string(static_cast<unsigned 
> int>(map.get_nrplayers())));
>  
>               m_size->set_text((boost::format(_("%1$ix%2$i"))
> -                                                             % 
> map.get_width() % map.get_height()).str().c_str());
> +                                                             % 
> map.get_width() % map.get_height()).str());
>       } else {
>               m_name     ->set_text(FileSystem::fs_filename(name));
>               m_name     ->set_tooltip("");
> @@ -286,13 +286,12 @@
>  #else
>               m_parentdir = m_curdir.substr(0, m_curdir.rfind('\\'));
>  #endif
> -             std::string parent_string =
> +
> +             m_ls->add
>                               /** TRANSLATORS: Parent directory */
> -                             (boost::format("\\<%s\\>") % _("parent")).str();
> -             m_ls->add
> -                     (parent_string.c_str(),
> -                      m_parentdir.c_str(),
> -                      g_gr->images().get("pics/ls_dir.png"));
> +                             ((boost::format("\\<%s\\>") % 
> _("parent")).str(),
> +                              m_parentdir.c_str(),
> +                              g_gr->images().get("pics/ls_dir.png"));
>       }
>  
>       const FilenameSet::const_iterator mapfiles_end = m_mapfiles.end();
> @@ -329,7 +328,7 @@
>                       try {
>                               wml->preload_map(true);
>                               m_ls->add
> -                                     
> (FileSystem::filename_without_ext(name).c_str(),
> +                                     (FileSystem::filename_without_ext(name),
>                                        name,
>                                        
> g_gr->images().get("pics/ls_wlmap.png"));
>                       } catch (const WException &) {} //  we simply skip 
> illegal entries
> 
> === modified file 'src/editor/ui_menus/editor_player_menu.cc'
> --- src/editor/ui_menus/editor_player_menu.cc 2014-09-20 09:37:47 +0000
> +++ src/editor/ui_menus/editor_player_menu.cc 2014-10-27 10:39:23 +0000
> @@ -208,7 +208,7 @@
>                       number += '0' + nr_players_10;
>               number += '0' + nr_players % 10;
>               /** TRANSLATORS: Default player name, e.g. Player 1 */
> -             std::string name = (boost::format(_("Player %s")) % 
> number).str();
> +             const std::string name = (boost::format(_("Player %s")) % 
> number).str();
>               map.set_scenario_player_name(nr_players, name);
>       }
>       map.set_scenario_player_tribe(nr_players, m_tribes[0]);
> 
> === modified file 
> 'src/editor/ui_menus/editor_player_menu_allowed_buildings_menu.cc'
> --- src/editor/ui_menus/editor_player_menu_allowed_buildings_menu.cc  
> 2014-09-10 14:08:25 +0000
> +++ src/editor/ui_menus/editor_player_menu_allowed_buildings_menu.cc  
> 2014-10-27 10:39:23 +0000
> @@ -116,7 +116,7 @@
>               if (!building.is_enhanced() && !building.is_buildable())
>                       continue;
>               (m_player.is_building_type_allowed(i) ? m_allowed : 
> m_forbidden).add
> -                     (building.descname().c_str(), i, building.get_icon());
> +                     (building.descname(), i, building.get_icon());
>       }
>       m_forbidden.sort();
>       m_allowed  .sort();
> @@ -156,7 +156,7 @@
>       const Widelands::BuildingDescr & building =
>               *m_player.tribe().get_building_descr(building_index);
>       target.add
> -             (building.descname().c_str(),
> +             (building.descname(),
>                building_index,
>                building.get_icon());
>       target.sort();
> 
> === modified file 
> 'src/editor/ui_menus/editor_tool_set_terrain_options_menu.cc'
> --- src/editor/ui_menus/editor_tool_set_terrain_options_menu.cc       
> 2014-09-29 18:01:06 +0000
> +++ src/editor/ui_menus/editor_tool_set_terrain_options_menu.cc       
> 2014-10-27 10:39:23 +0000
> @@ -126,7 +126,7 @@
>       /** TRANSLATORS: %1% = terrain name, %2% = list of terrain types  */
>       const std::string tooltip = ((boost::format("%1%: %2%"))
>                                                                 % 
> terrain_descr.descname()
> -                                                               % 
> i18n::localize_item_list(tooltips, i18n::ConcatenateWith::AND)).str().c_str();
> +                                                               % 
> i18n::localize_item_list(tooltips, i18n::ConcatenateWith::AND)).str();
>  
>       std::unique_ptr<const Image>& image = offscreen_images->back();
>       UI::Checkbox* cb = new UI::Checkbox(parent, Point(0, 0), image.get(), 
> tooltip);
> 
> === modified file 'src/io/filesystem/zip_filesystem.cc'
> --- src/io/filesystem/zip_filesystem.cc       2014-09-30 05:41:55 +0000
> +++ src/io/filesystem/zip_filesystem.cc       2014-10-27 10:39:23 +0000
> @@ -329,11 +329,9 @@
>                       break;
>               if (len < 0) {
>                       unzCloseCurrentFile(m_unzipfile);
> +                     const std::string errormessage = (boost::format("read 
> error %i") % len).str();
>                       throw ZipOperationError
> -                             ("ZipFilesystem::load",
> -                              fname,
> -                              m_zipfilename,
> -                              (boost::format("read error %i") % 
> len).str().c_str());
> +                             ("ZipFilesystem::load", fname, m_zipfilename, 
> errormessage.c_str());
>               }
>  
>               totallen += len;
> 
> === modified file 'src/logic/critter.cc'
> --- src/logic/critter.cc      2014-09-30 05:41:55 +0000
> +++ src/logic/critter.cc      2014-10-27 10:39:23 +0000
> @@ -154,7 +154,7 @@
>               add_attributes(attributes, std::set<uint32_t>());
>       }
>  
> -     const std::string defaultpics = (boost::format("%s_walk_!!_??.png") % 
> _name).str().c_str();
> +     const std::string defaultpics = (boost::format("%s_walk_!!_??.png") % 
> _name).str();
>       m_walk_anims.parse(*this, directory, prof, "walk", false, defaultpics);
>  
>       while (Section::Value const * const v = 
> global_s.get_next_val("program")) {
> 
> === modified file 'src/logic/production_program.cc'
> --- src/logic/production_program.cc   2014-09-30 20:31:43 +0000
> +++ src/logic/production_program.cc   2014-10-27 10:39:23 +0000
> @@ -54,8 +54,6 @@
>  
>  namespace {
>  
> -// For formation of better translateable texts
> -using boost::format;
>  
>  /**
>   * Convert std::string to any sstream-compatible type
> @@ -268,15 +266,17 @@
>       // TODO(GunChleoc): We can make this more elegant if we add another 
> definition to the conf files,
>       // so for "Log"; we will also have "logs" (numberless plural)
>       /** TRANSLATORS: e.g. Completed/Skipped/Did not start ... because the 
> economy needs the ware ‘%s’*/
> -     return (boost::format(_("the economy needs the ware ‘%s’"))
> +     std::string result =  (boost::format(_("the economy needs the ware 
> ‘%s’"))
>                         % tribe.get_ware_descr(ware_type)->descname()).str();
> +     return result;
>  }
>  std::string 
> ProductionProgram::ActReturn::EconomyNeedsWare::description_negation
>       (const TribeDescr & tribe) const
>  {
>       /** TRANSLATORS: e.g. Completed/Skipped/Did not start ... because the 
> economy doesn’t need the ware ‘%s’*/
> -     return (boost::format(_("the economy doesn’t need the ware ‘%s’"))
> +     std::string result = (boost::format(_("the economy doesn’t need the 
> ware ‘%s’"))
>                         % tribe.get_ware_descr(ware_type)->descname()).str();
> +     return result;
>  }
>  
>  bool ProductionProgram::ActReturn::EconomyNeedsWorker::evaluate
> @@ -288,8 +288,9 @@
>       (const TribeDescr & tribe) const
>  {
>       /** TRANSLATORS: e.g. Completed/Skipped/Did not start ... because the 
> economy needs the worker ‘%s’*/
> -     return (boost::format(_("the economy needs the worker ‘%s’"))
> +     std::string result = (boost::format(_("the economy needs the worker 
> ‘%s’"))
>                         % 
> tribe.get_worker_descr(worker_type)->descname()).str();
> +     return result;
>  }
>  
>  std::string 
> ProductionProgram::ActReturn::EconomyNeedsWorker::description_negation
> @@ -297,8 +298,9 @@
>  {
>       /** TRANSLATORS: e.g. Completed/Skipped/Did not start ...*/
>       /** TRANSLATORS:      ... because the economy doesn’t need the worker 
> ‘%s’*/
> -     return (boost::format(_("the economy doesn’t need the worker ‘%s’"))
> +     std::string result = (boost::format(_("the economy doesn’t need the 
> worker ‘%s’"))
>                         % 
> tribe.get_worker_descr(worker_type)->descname()).str();
> +     return result;
>  }
>  
>  
> @@ -955,7 +957,7 @@
>                               /** TRANSLATORS: e.g. 'Did not start working 
> because fish, meat or pitta bread is missing' */
>                               (boost::format(ngettext("%s is missing", "%s 
> are missing", nr_missing_groups))
>                                % i18n::localize_item_list(group_list, 
> i18n::ConcatenateWith::AND))
> -                              .str().c_str();
> +                              .str();
>  
>               std::string result_string =
>                       /** TRANSLATORS: e.g. 'Did not start working because 3x 
> water and 3x wheat are missing' */
> @@ -1068,9 +1070,9 @@
>       }
>       std::string ware_list = i18n::localize_item_list(ware_descnames, 
> i18n::ConcatenateWith::AND);
>  
> -     // Keep translateability in mind!
>       /** TRANSLATORS: %s is a list of wares */
> -     ps.set_production_result(str(format(_("Produced %s")) % ware_list));
> +     const std::string result_string = (boost::format(_("Produced %s")) % 
> ware_list).str();
> +     ps.set_production_result(result_string);
>  }
>  
>  bool ProductionProgram::ActProduce::get_building_work
> @@ -1164,7 +1166,8 @@
>       std::string unit_string = i18n::localize_item_list(worker_descnames, 
> i18n::ConcatenateWith::AND);
>  
>       /** TRANSLATORS: %s is a list of workers */
> -     ps.set_production_result((boost::format(_("Recruited %s")) % 
> unit_string).str());
> +     const std::string result_string = (boost::format(_("Recruited %s")) % 
> unit_string).str();
> +     ps.set_production_result(result_string);
>  }
>  
>  bool ProductionProgram::ActRecruit::get_building_work
> 
> === modified file 'src/logic/productionsite.cc'
> --- src/logic/productionsite.cc       2014-09-24 21:06:00 +0000
> +++ src/logic/productionsite.cc       2014-10-27 10:39:23 +0000
> @@ -299,7 +299,7 @@
>                               ++lastOk;
>               }
>       }
> -     // Somehow boost::format doesn't handle correctly uint8_t in this case
> +     // boost::format would treat uint8_t as char
>       const unsigned int percOk = (ok * 100) / STATISTICS_VECTOR_LENGTH;
>       m_last_stat_percent = percOk;
>  
> 
> === modified file 'src/logic/soldier.cc'
> --- src/logic/soldier.cc      2014-09-30 05:41:55 +0000
> +++ src/logic/soldier.cc      2014-10-27 10:39:23 +0000
> @@ -137,23 +137,23 @@
>       for (uint32_t i = 0; i <= m_max_hp_level;      ++i) {
>               m_hp_pics_fn[i] = dir;
>               m_hp_pics_fn[i] += 
> global_s.get_safe_string((boost::format("hp_level_%u_pic")
> -                                                                             
>                                                         % i).str().c_str());
> +                                                                             
>                                                         % i).str());
>  
>       }
>       for (uint32_t i = 0; i <= m_max_attack_level;  ++i) {
>               m_attack_pics_fn[i] = dir;
>               m_attack_pics_fn[i] += 
> global_s.get_safe_string((boost::format("attack_level_%u_pic")
> -                                                                             
>                                                                  % 
> i).str().c_str());
> +                                                                             
>                                                                  % i).str());
>       }
>       for (uint32_t i = 0; i <= m_max_defense_level; ++i) {
>               m_defense_pics_fn[i] = dir;
>               m_defense_pics_fn[i] += 
> global_s.get_safe_string((boost::format("defense_level_%u_pic")
> -                                                                             
>                                                                   % 
> i).str().c_str());
> +                                                                             
>                                                                   % i).str());
>       }
>       for (uint32_t i = 0; i <= m_max_evade_level;   ++i) {
>               m_evade_pics_fn[i] = dir;
>               m_evade_pics_fn[i] += 
> global_s.get_safe_string((boost::format("evade_level_%u_pic")
> -                                                                             
>                                                                 % 
> i).str().c_str());
> +                                                                             
>                                                                 % i).str());
>       }
>  
>       {  ///  Battle animations
> @@ -1550,7 +1550,7 @@
>                                       BaseImmovable const * const 
> immovable_dest     =
>                                               map[dest]            
> .get_immovable();
>  
> -                                     std::string messagetext =
> +                                     const std::string messagetext =
>                                                       (boost::format("The 
> game engine has encountered a logic error. The %s "
>                                                                               
>                 "#%u of player %u could not find a way from (%i, %i) "
>                                                                               
>                 "(with %s immovable) to the opponent (%s #%u of player "
> 
> === modified file 'src/logic/trainingsite.cc'
> --- src/logic/trainingsite.cc 2014-09-30 05:41:55 +0000
> +++ src/logic/trainingsite.cc 2014-10-27 10:39:23 +0000
> @@ -659,7 +659,7 @@
>  
>       return program_start(game, (boost::format("%s%i")
>                                                                               
>  % upgrade.prefix.c_str()
> -                                                                             
>  % level).str().c_str());
> +                                                                             
>  % level).str());
>  }
>  
>  TrainingSite::Upgrade * TrainingSite::get_upgrade(TrainingAttribute const 
> atr)
> 
> === modified file 'src/logic/tribe.cc'
> --- src/logic/tribe.cc        2014-09-30 05:41:55 +0000
> +++ src/logic/tribe.cc        2014-10-27 10:39:23 +0000
> @@ -433,7 +433,7 @@
>  
>       return get_immovable_index((boost::format("resi_%s%i")
>                                                                               
>  % res->name().c_str()
> -                                                                             
>  % bestmatch).str().c_str());
> +                                                                             
>  % bestmatch).str());
>  }
>  
>  /*
> 
> === modified file 'src/logic/worker.cc'
> --- src/logic/worker.cc       2014-10-18 13:39:27 +0000
> +++ src/logic/worker.cc       2014-10-27 10:39:23 +0000
> @@ -939,7 +939,7 @@
>                                       (boost::format("<rt 
> image=world/resources/pics/%s4.png>"
>                                                                               
> "<p font-size=14 font-face=DejaVuSerif>%s</p></rt>")
>                                        % rdescr->name().c_str()
> -                                      % _("A geologist found 
> resources.")).str().c_str();
> +                                      % _("A geologist found 
> resources.")).str();
>  
>                       //  We should add a message to the player's message 
> queue - but only,
>                       //  if there is not already a similar one in list.
> @@ -1841,7 +1841,7 @@
>               molog("[return]: Failed to return\n");
>               const std::string message =
>                               (boost::format(_("Your %s can't find a way home 
> and will likely die."))
> -                                                               % 
> descr().descname().c_str()).str().c_str();
> +                              % descr().descname().c_str()).str();
>  
>               owner().add_message
>                       (game,
> 
> === modified file 'src/map_io/coords_profile.cc'
> --- src/map_io/coords_profile.cc      2014-06-18 13:20:33 +0000
> +++ src/map_io/coords_profile.cc      2014-10-27 10:39:23 +0000
> @@ -71,7 +71,7 @@
>  
>  Coords
>  get_safe_coords(const std::string& name, const Extent& extent, Section* 
> section) {
> -     return parse_coords(name, section->get_safe_string(name.c_str()), 
> extent);
> +     return parse_coords(name, section->get_safe_string(name), extent);
>  }
>  
>  }  // namespace Widelands
> 
> === modified file 'src/map_io/map_allowed_building_types_packet.cc'
> --- src/map_io/map_allowed_building_types_packet.cc   2014-09-30 05:41:55 
> +0000
> +++ src/map_io/map_allowed_building_types_packet.cc   2014-10-27 10:39:23 
> +0000
> @@ -72,7 +72,7 @@
>                                               
> player->allow_building_type(--i, false);
>                               try {
>                                       Section & s = 
> prof.get_safe_section((boost::format("player_%u")
> -                                                                             
>                                                          % 
> static_cast<unsigned int>(p)).str().c_str());
> +                                                                             
>                                                          % 
> static_cast<unsigned int>(p)).str());
>  
>                                       bool allowed;
>                                       while (const char * const name = 
> s.get_next_bool(nullptr, &allowed)) {
> @@ -108,8 +108,9 @@
>       PlayerNumber const nr_players = egbase.map().get_nrplayers();
>       iterate_players_existing_const(p, nr_players, egbase, player) {
>               const TribeDescr & tribe = player->tribe();
> -             Section & section = 
> prof.create_section((boost::format("player_%u")
> -                                                                             
>                                           % static_cast<unsigned 
> int>(p)).str().c_str());
> +             const std::string section_key = (boost::format("player_%u")
> +                                                                             
>                         % static_cast<unsigned int>(p)).str();
> +             Section & section = prof.create_section(section_key.c_str());
>  
>               //  Write for all buildings if it is enabled.
>               BuildingIndex const nr_buildings = tribe.get_nrbuildings();
> 
> === modified file 'src/map_io/map_allowed_worker_types_packet.cc'
> --- src/map_io/map_allowed_worker_types_packet.cc     2014-09-30 05:41:55 
> +0000
> +++ src/map_io/map_allowed_worker_types_packet.cc     2014-10-27 10:39:23 
> +0000
> @@ -59,7 +59,7 @@
>                               const TribeDescr & tribe = player->tribe();
>                               try {
>                                       Section* s = 
> prof.get_section((boost::format("player_%u")
> -                                                                             
>                                          % static_cast<unsigned 
> int>(p)).str().c_str());
> +                                                                             
>                                          % static_cast<unsigned 
> int>(p)).str());
>                                       if (s == nullptr)
>                                               continue;
>  
> @@ -93,8 +93,9 @@
>       bool forbidden_worker_seen = false;
>       iterate_players_existing_const(p, egbase.map().get_nrplayers(), egbase, 
> player) {
>               const TribeDescr & tribe = player->tribe();
> -             Section & section = 
> prof.create_section((boost::format("player_%u")
> -                                                                             
>                                           % static_cast<unsigned 
> int>(p)).str().c_str());
> +             const std::string section_key = (boost::format("player_%u")
> +                                                                             
>                         % static_cast<unsigned int>(p)).str();
> +             Section & section = prof.create_section(section_key.c_str());
>  
>               // Only write the workers which are disabled.
>               for (WareIndex b = 0; b < tribe.get_nrworkers(); ++b) {
> 
> === modified file 'src/map_io/map_player_names_and_tribes_packet.cc'
> --- src/map_io/map_player_names_and_tribes_packet.cc  2014-09-30 05:41:55 
> +0000
> +++ src/map_io/map_player_names_and_tribes_packet.cc  2014-10-27 10:39:23 
> +0000
> @@ -68,7 +68,7 @@
>                       PlayerNumber const nr_players = map->get_nrplayers();
>                       iterate_player_numbers(p, nr_players) {
>                               Section & s = 
> prof.get_safe_section((boost::format("player_%u")
> -                                                                             
>                                                  % static_cast<unsigned 
> int>(p)).str().c_str());
> +                                                                             
>                                                  % static_cast<unsigned 
> int>(p)).str());
>                               map->set_scenario_player_name     (p, 
> s.get_string("name",  ""));
>                               map->set_scenario_player_tribe    (p, 
> s.get_string("tribe", ""));
>                               map->set_scenario_player_ai       (p, 
> s.get_string("ai",    ""));
> @@ -94,8 +94,9 @@
>       const Map & map = egbase.map();
>       PlayerNumber const nr_players = map.get_nrplayers();
>       iterate_player_numbers(p, nr_players) {
> -             Section & s = prof.create_section((boost::format("player_%u")
> -                                                                             
>                           % static_cast<unsigned int>(p)).str().c_str());
> +             const std::string section_key = (boost::format("player_%u")
> +                                                                             
>                         % static_cast<unsigned int>(p)).str();
> +             Section & s = prof.create_section(section_key.c_str());
>               s.set_string("name",      map.get_scenario_player_name     (p));
>               s.set_string("tribe",     map.get_scenario_player_tribe    (p));
>               s.set_string("ai",        map.get_scenario_player_ai       (p));
> 
> === modified file 'src/map_io/map_player_position_packet.cc'
> --- src/map_io/map_player_position_packet.cc  2014-09-30 05:41:55 +0000
> +++ src/map_io/map_player_position_packet.cc  2014-10-27 10:39:23 +0000
> @@ -52,7 +52,7 @@
>                               try {
>                                       map.set_starting_pos(p,
>                                                                               
>                 get_safe_coords((boost::format("player_%u")
> -                                                                             
>                                                           % 
> static_cast<unsigned int>(p)).str().c_str(),
> +                                                                             
>                                                           % 
> static_cast<unsigned int>(p)).str(),
>                                                                               
>                                                          extent, &s));
>                               } catch (const WException & e) {
>                                       throw GameDataError("player %u: %s", p, 
> e.what());
> @@ -79,7 +79,7 @@
>       const Map & map = egbase.map();
>       const PlayerNumber nr_players = map.get_nrplayers();
>       iterate_player_numbers(p, nr_players) {
> -             set_coords((boost::format("player_%u") % static_cast<unsigned 
> int>(p)).str().c_str(),
> +             set_coords((boost::format("player_%u") % static_cast<unsigned 
> int>(p)).str(),
>                                         map.get_starting_pos(p), &s);
>       }
>  
> 
> === modified file 'src/map_io/map_players_messages_packet.cc'
> --- src/map_io/map_players_messages_packet.cc 2014-09-30 05:41:55 +0000
> +++ src/map_io/map_players_messages_packet.cc 2014-10-27 10:39:23 +0000
> @@ -46,8 +46,9 @@
>               try {
>                       Profile prof;
>                       try {
> -                             prof.read((boost::format(FILENAME_TEMPLATE) % 
> static_cast<unsigned int>(p)).str().c_str(),
> -                                                      nullptr, fs);
> +                             const std::string profile_filename =
> +                                             
> (boost::format(FILENAME_TEMPLATE) % static_cast<unsigned int>(p)).str();
> +                             prof.read(profile_filename.c_str(), nullptr, 
> fs);
>                       } catch (...) {continue;}
>                       prof.get_safe_section("global").get_positive
>                               ("packet_version", CURRENT_PACKET_VERSION);
> @@ -183,9 +184,11 @@
>                       }
>               }
>               
> fs.ensure_directory_exists((boost::format(PLAYERDIRNAME_TEMPLATE)
> -                                                                             
>   % static_cast<unsigned int>(p)).str().c_str());
> -             prof.write((boost::format(FILENAME_TEMPLATE)
> -                                             % static_cast<unsigned 
> int>(p)).str().c_str(), false, fs);
> +                                                                             
>   % static_cast<unsigned int>(p)).str());
> +
> +             const std::string profile_filename =
> +                             (boost::format(FILENAME_TEMPLATE) % 
> static_cast<unsigned int>(p)).str();
> +             prof.write(profile_filename.c_str(), false, fs);
>       }
>  }
>  
> 
> === modified file 'src/map_io/map_players_view_packet.cc'
> --- src/map_io/map_players_view_packet.cc     2014-09-30 05:41:55 +0000
> +++ src/map_io/map_players_view_packet.cc     2014-10-27 10:39:23 +0000
> @@ -1179,9 +1179,9 @@
>                       char filename[FILENAME_SIZE];
>  
>                       
> fs.ensure_directory_exists((boost::format(PLAYERDIRNAME_TEMPLATE)
> -                                                                             
>           % static_cast<unsigned int>(plnum)).str().c_str());
> +                                                                             
>           % static_cast<unsigned int>(plnum)).str());
>                       
> fs.ensure_directory_exists((boost::format(DIRNAME_TEMPLATE)
> -                                                                             
>           % static_cast<unsigned int>(plnum)).str().c_str());
> +                                                                             
>           % static_cast<unsigned int>(plnum)).str());
>  
>                       WRITE
>                               (unseen_times_file,
> 
> === modified file 'src/network/nethost.cc'
> --- src/network/nethost.cc    2014-10-26 12:17:01 +0000
> +++ src/network/nethost.cc    2014-10-27 10:39:23 +0000
> @@ -64,9 +64,6 @@
>  #include "wui/interactive_player.h"
>  #include "wui/interactive_spectator.h"
>  
> -using boost::format;
> -
> -
>  
>  struct HostGameSettingsProvider : public GameSettingsProvider {
>       HostGameSettingsProvider(NetHost * const _h) : h(_h), m_lua(nullptr), 
> m_cur_wincondition(0) {}
> @@ -418,9 +415,9 @@
>                                       } else if (num == -1) {
>                                               if (!h->is_dedicated())
>                                                       c.recipient = 
> h->get_local_playername();
> -                                             c.msg = (format(_("The client 
> %s could not be found.")) % arg1).str();
> +                                             c.msg = (boost::format(_("The 
> client %s could not be found.")) % arg1).str();
>                                       } else {
> -                                             c.msg  = (format("HOST WARNING 
> FOR %s: ") % arg1).str();
> +                                             c.msg  = (boost::format("HOST 
> WARNING FOR %s: ") % arg1).str();
>                                               c.msg += arg2;
>                                       }
>                               }
> @@ -444,12 +441,12 @@
>                                               } else
>                                                       c.msg = _("You can not 
> kick the dedicated server");
>                                       else if (num == -1)
> -                                             c.msg = (format(_("The client 
> %s could not be found.")) % arg1).str();
> +                                             c.msg = (boost::format(_("The 
> client %s could not be found.")) % arg1).str();
>                                       else {
>                                               kickClient = num;
> -                                             c.msg  = (format(_("Are you 
> sure you want to kick %s?")) % arg1).str() + "<br>";
> -                                             c.msg += (format(_("The stated 
> reason was: %s")) % kickReason).str() + "<br>";
> -                                             c.msg += (format(_("If yes, 
> type: /ack_kick %s")) % arg1).str();
> +                                             c.msg  = (boost::format(_("Are 
> you sure you want to kick %s?")) % arg1).str() + "<br>";
> +                                             c.msg += (boost::format(_("The 
> stated reason was: %s")) % kickReason).str() + "<br>";
> +                                             c.msg += (boost::format(_("If 
> yes, type: /ack_kick %s")) % arg1).str();
>                                       }
>                               }
>                               if (!h->is_dedicated())
> @@ -736,14 +733,13 @@
>               // May be the server is password protected?
>               Section & s = g_options.pull_section("global");
>               m_password  = s.get_string("dedicated_password", "");
> +
>               // And we read the message of the day
> -             m_dedicated_motd =
> -                     s.get_string
> -                             ("dedicated_motd",
> -                              (format
> -                                     (_("This is a dedicated server. Send 
> \"@%s help\" to get a full list of available commands."))
> -                                     % d->localplayername)
> -                             .str().c_str());
> +             const std::string dedicated_motd_key =
> +                             (boost::format
> +                              (_("This is a dedicated server. Send \"@%s 
> help\" to get a full list of available commands."))
> +                              % d->localplayername).str();
> +             m_dedicated_motd = s.get_string("dedicated_motd", 
> dedicated_motd_key.c_str());
>  
>               // Maybe this is the first run, so we try to setup the 
> DedicatedLog
>               // empty strings are treated as "do not write this type of log"
> @@ -1242,7 +1238,7 @@
>                       return;
>               }
>               std::string temp = arg1 + " " + arg2;
> -             c.msg = (format(_("%1$s told me to run the command: \"%2$s\"")) 
> % sender % temp).str();
> +             c.msg = (boost::format(_("%1$s told me to run the command: 
> \"%2$s\"")) % sender % temp).str();
>               c.recipient = "";
>               send(c);
>               d->chat.send(temp);
> @@ -1269,7 +1265,7 @@
>                               c.msg = _("Game successfully saved!");
>                       else
>                               c.msg =
> -                                     (format(_("Could not save the game to 
> the file \"%1$s\"! (%2$s)"))
> +                                     (boost::format(_("Could not save the 
> game to the file \"%1$s\"! (%2$s)"))
>                                        % savename % error)
>                                        .str();
>                       send(c);
> @@ -1300,7 +1296,7 @@
>  
>       // default
>       } else {
> -             c.msg = (format(_("Unknown dedicated server command \"%s\"!")) 
> % cmd).str();
> +             c.msg = (boost::format(_("Unknown dedicated server command 
> \"%s\"!")) % cmd).str();
>               send(c);
>       }
>  }
> @@ -2163,7 +2159,7 @@
>               if (m_password.size() > 1) {
>                       c.msg += "<br>";
>                       c.msg +=
> -                             (format
> +                             (boost::format
>                                       (_("This server is password protected. 
> You can send the password with: \"@%s pwd PASSWORD\""))
>                                       % d->localplayername)
>                               .str();
> @@ -2286,7 +2282,7 @@
>                                       if ((d->clients.at(i).hung_since < 
> (time(nullptr) - 300)) && m_is_dedicated) {
>                                               disconnect_client(i, 
> "CLIENT_TIMEOUTED");
>                                               // Try to save the game
> -                                             std::string savename = 
> (boost::format("save/client_hung_%i.wmf") % time(nullptr)).str();;
> +                                             std::string savename = 
> (boost::format("save/client_hung_%i.wmf") % time(nullptr)).str();
>                                               std::string * error = new 
> std::string();
>                                               SaveHandler & sh = 
> d->game->save_handler();
>                                               if (sh.save_game(*d->game, 
> savename, error))
> 
> === modified file 'src/scripting/lua_bases.cc'
> --- src/scripting/lua_bases.cc        2014-09-18 18:52:34 +0000
> +++ src/scripting/lua_bases.cc        2014-10-27 10:39:23 +0000
> @@ -317,8 +317,10 @@
>  }
>  
>  int LuaPlayerBase::__tostring(lua_State * L) {
> -     lua_pushstring(L, (boost::format("Player(%i)")
> -                                                      % static_cast<unsigned 
> int>(get(L, get_egbase(L)).player_number())).str().c_str());
> +     const std::string pushme =
> +                     (boost::format("Player(%i)")
> +                      % static_cast<unsigned int>(get(L, 
> get_egbase(L)).player_number())).str();
> +     lua_pushstring(L, pushme.c_str());
>       return 1;
>  }
>  /* RST
> 
> === modified file 'src/scripting/lua_map.cc'
> --- src/scripting/lua_map.cc  2014-10-11 11:14:25 +0000
> +++ src/scripting/lua_map.cc  2014-10-27 10:39:23 +0000
> @@ -3522,7 +3522,8 @@
>   */
>  // Hash is used to identify a class in a Set
>  int LuaField::get___hash(lua_State * L) {
> -     lua_pushstring(L, (boost::format("%i_%i") % m_c.x % 
> m_c.y).str().c_str());
> +     const std::string pushme = (boost::format("%i_%i") % m_c.x % 
> m_c.y).str();
> +     lua_pushstring(L, pushme.c_str());
>       return 1;
>  }
>  
> @@ -3851,7 +3852,8 @@
>  }
>  
>  int LuaField::__tostring(lua_State * L) {
> -     lua_pushstring(L, (boost::format("Field(%i,%i)") % m_c.x % 
> m_c.y).str().c_str());
> +     const std::string pushme = (boost::format("Field(%i,%i)") % m_c.x % 
> m_c.y).str();
> +     lua_pushstring(L, pushme);
>       return 1;
>  }
>  
> 
> === modified file 'src/ui_basic/helpwindow.cc'
> --- src/ui_basic/helpwindow.cc        2014-09-30 05:41:55 +0000
> +++ src/ui_basic/helpwindow.cc        2014-10-27 10:39:23 +0000
> @@ -37,9 +37,6 @@
>  #include "ui_basic/window.h"
>  #include "wui/text_constants.h"
>  
> -
> -using boost::format;
> -
>  namespace UI {
>  
>  HelpWindow::HelpWindow
> @@ -48,7 +45,7 @@
>        uint32_t fontsize,
>        uint32_t width, uint32_t height)
>       :
> -     Window(parent, "help_window", 0, 0, 20, 20, (boost::format(_("Help: 
> %s")) % caption).str().c_str()),
> +     Window(parent, "help_window", 0, 0, 20, 20, (boost::format(_("Help: 
> %s")) % caption).str()),
>       textarea(new MultilineTextarea(this, 5, 5, 30, 30, std::string(), 
> Align_Left)),
>       m_h1(std::to_string(fontsize < 12 ? 18 : fontsize * 3 / 2)),
>       m_h2(std::to_string(fontsize < 12 ? 12 : fontsize)),
> @@ -191,7 +188,7 @@
>        uint32_t width, uint32_t height)
>       :
>       UI::UniqueWindow(parent, "help_window", &reg, width, height,
> -                     (boost::format(_("Help: %s")) % 
> building_description.descname()).str().c_str()),
> +                     (boost::format(_("Help: %s")) % 
> building_description.descname()).str()),
>       textarea(new MultilineTextarea(this, 5, 5, width - 10, height -10, 
> std::string(), Align_Left))
>  {
>       try {
> 
> === modified file 'src/ui_basic/listselect.cc'
> --- src/ui_basic/listselect.cc        2014-09-10 14:48:40 +0000
> +++ src/ui_basic/listselect.cc        2014-10-27 10:39:23 +0000
> @@ -119,7 +119,7 @@
>   *       sel    if true, directly select the new entry
>  */
>  void BaseListselect::add
> -     (char const * const   name,
> +     (const std::string& name,

+1 for this change too :) Killing const char* will rid us of these kind of bugs.

>        uint32_t             entry,
>        const Image*   pic,
>        bool         const   sel,
> @@ -130,7 +130,7 @@
>       er->m_entry = entry;
>       er->pic   = pic;
>       er->use_clr = false;
> -     er->name    = std::string(name);
> +     er->name    = name;
>       er->tooltip = tooltip_text;
>       uint32_t entry_height = 0;
>       if (!pic) {
> @@ -158,7 +158,7 @@
>  }
>  
>  void BaseListselect::add_front
> -     (char const * const   name,
> +     (const std::string& name,
>        const Image*   pic,
>        bool         const   sel,
>        const std::string  & tooltip_text)
> @@ -172,7 +172,7 @@
>  
>       er->pic   = pic;
>       er->use_clr = false;
> -     er->name    = std::string(name);
> +     er->name    = name;
>       er->tooltip = tooltip_text;
>  
>       uint32_t entry_height = 0;
> 
> === modified file 'src/ui_basic/listselect.h'
> --- src/ui_basic/listselect.h 2014-09-14 11:31:58 +0000
> +++ src/ui_basic/listselect.h 2014-10-27 10:39:23 +0000
> @@ -60,13 +60,13 @@
>               (const uint32_t Begin = 0,
>                uint32_t End = std::numeric_limits<uint32_t>::max());
>       void add
> -             (const char * const name,
> +             (const std::string& name,
>                uint32_t value,
>                const Image* pic = nullptr,
>                const bool select_this = false,
>                const std::string & tooltip_text = std::string());
>       void add_front
> -             (const char * const name,
> +             (const std::string& name,
>                const Image* pic = nullptr,
>                const bool select_this = false,
>                const std::string & tooltip_text = std::string());
> @@ -166,7 +166,7 @@
>       {}
>  
>       void add
> -             (const char * const name,
> +             (const std::string& name,
>                Entry value,
>                const Image* pic = nullptr,
>                const bool select_this = false,
> @@ -176,7 +176,7 @@
>               BaseListselect::add(name, m_entry_cache.size() - 1, pic, 
> select_this, tooltip_text);
>       }
>       void add_front
> -             (const char * const name,
> +             (const std::string& name,
>                Entry value,
>                const Image* pic = nullptr,
>                const bool select_this = false,
> @@ -221,7 +221,7 @@
>       {}
>  
>       void add
> -             (const char * const name,
> +             (const std::string& name,
>                Entry      &       value,
>                const Image* pic = nullptr,
>                const bool select_this = false,
> @@ -230,7 +230,7 @@
>               Base::add(name, &value, pic, select_this, tooltip_text);
>       }
>       void add_front
> -             (const char * const name,
> +             (const std::string& name,
>                Entry      &       value,
>                const Image* pic = nullptr,
>                const bool select_this = false,
> 
> === modified file 'src/ui_fsmenu/editor_mapselect.cc'
> --- src/ui_fsmenu/editor_mapselect.cc 2014-09-30 05:41:55 +0000
> +++ src/ui_fsmenu/editor_mapselect.cc 2014-10-27 10:39:23 +0000
> @@ -209,12 +209,11 @@
>  #else
>               m_parentdir = m_curdir.substr(0, m_curdir.rfind('\\'));
>  #endif
> -             std::string parent_string =
> +
> +             m_list.add
>                               /** TRANSLATORS: Parent directory */
> -                             (boost::format("\\<%s\\>") % _("parent")).str();
> -             m_list.add
> -                     (parent_string.c_str(),
> -                      m_parentdir.c_str(),
> +                             ((boost::format("\\<%s\\>") % 
> _("parent")).str(),
> +                              m_parentdir.c_str(),
>                        g_gr->images().get("pics/ls_dir.png"));
>       }
>  
> 
> === modified file 'src/ui_fsmenu/internet_lobby.cc'
> --- src/ui_fsmenu/internet_lobby.cc   2014-09-20 09:37:47 +0000
> +++ src/ui_fsmenu/internet_lobby.cc   2014-10-27 10:39:23 +0000
> @@ -249,7 +249,7 @@
>               // than one server with the same name.
>               if (games.at(i).name == localservername)
>                       hostgame.set_enabled(false);
> -             opengames.add(games.at(i).name.c_str(), games.at(i), pic, 
> false, games.at(i).build_id);
> +             opengames.add(games.at(i).name, games.at(i), pic, false, 
> games.at(i).build_id);
>       }
>  }
>  
> 
> === modified file 'src/ui_fsmenu/launch_mpg.cc'
> --- src/ui_fsmenu/launch_mpg.cc       2014-10-26 12:17:01 +0000
> +++ src/ui_fsmenu/launch_mpg.cc       2014-10-27 10:39:23 +0000
> @@ -45,8 +45,6 @@
>  #include "wui/multiplayersetupgroup.h"
>  #include "wui/text_constants.h"
>  
> -using boost::format;
> -
>  /// Simple user interaction window for selecting either map, save or cancel
>  struct MapOrSaveSelectionWindow : public UI::Window {
>       MapOrSaveSelectionWindow
> @@ -484,10 +482,10 @@
>               std::string temp =
>                       (settings.playernum > -1) && (settings.playernum < 
> MAX_PLAYERS)
>                       ?
> -                     (format(_("Player %i")) % (settings.playernum + 
> 1)).str()
> +                     (boost::format(_("Player %i")) % (settings.playernum + 
> 1)).str()
>                       :
>                       _("Spectator");
> -             temp  = (format(_("At the moment you are %s")) % 
> temp.c_str()).str() + "\n\n";
> +             temp  = (boost::format(_("At the moment you are %s")) % 
> temp.c_str()).str() + "\n\n";
>               temp += _("Click on the ‘?’ in the top right corner to get 
> help.");
>               m_client_info.set_text(temp);
>       }
> @@ -557,7 +555,7 @@
>       for (; i <= m_nr_players; ++i) {
>               infotext += "\n* ";
>               Section & s = prof.get_safe_section((boost::format("player_%u")
> -                                                                             
>                                  % static_cast<unsigned 
> int>(i)).str().c_str());
> +                                                                             
>                                  % static_cast<unsigned int>(i)).str());
>               player_save_name [i - 1] = s.get_string("name");
>               player_save_tribe[i - 1] = s.get_string("tribe");
>               player_save_ai   [i - 1] = s.get_string("ai");
> @@ -639,12 +637,12 @@
>  
>       std::string infotext;
>       infotext += std::string(_("Map details:")) + "\n";
> -     infotext += std::string("• ") + (format(_("Size: %1$u x %2$u"))
> +     infotext += std::string("• ") + (boost::format(_("Size: %1$u x %2$u"))
>                                        % map.get_width() % 
> map.get_height()).str() + "\n";
> -     infotext += std::string("• ") + (format(ngettext("%u Player", "%u 
> Players", m_nr_players))
> +     infotext += std::string("• ") + (boost::format(ngettext("%u Player", 
> "%u Players", m_nr_players))
>                                        % m_nr_players).str() + "\n";
>       if (m_settings->settings().scenario)
> -             infotext += std::string("• ") + (format(_("Scenario mode 
> selected"))).str() + "\n";
> +             infotext += std::string("• ") + (boost::format(_("Scenario mode 
> selected"))).str() + "\n";
>       infotext += "\n";
>       infotext += map.get_description();
>       infotext += "\n";
> 
> === modified file 'src/ui_fsmenu/loadgame.cc'
> --- src/ui_fsmenu/loadgame.cc 2014-10-11 16:08:10 +0000
> +++ src/ui_fsmenu/loadgame.cc 2014-10-27 10:39:23 +0000
> @@ -294,7 +294,7 @@
>       if (m_settings && !m_settings->settings().saved_games.empty()) {
>               for (uint32_t i = 0; i < 
> m_settings->settings().saved_games.size(); ++i) {
>                       const char * path = 
> m_settings->settings().saved_games.at(i).path.c_str();
> -                     
> m_list.add(FileSystem::filename_without_ext(path).c_str(), path);
> +                     m_list.add(FileSystem::filename_without_ext(path), 
> path);
>               }
>       } else { // Normal case
>               // Fill it with all files we find.
> @@ -365,7 +365,7 @@
>                               }
>                               // End localization section
>  
> -                             m_list.add(displaytitle.c_str(), name);
> +                             m_list.add(displaytitle, name);
>                       } catch (const WException &) {
>                               //  we simply skip illegal entries
>                       }
> 
> === modified file 'src/ui_fsmenu/loadreplay.cc'
> --- src/ui_fsmenu/loadreplay.cc       2014-10-11 16:08:10 +0000
> +++ src/ui_fsmenu/loadreplay.cc       2014-10-27 10:39:23 +0000
> @@ -291,7 +291,7 @@
>                       }
>                       // End localization section
>  
> -                     m_list.add(displaytitle.c_str(), *pname);
> +                     m_list.add(displaytitle, *pname);
>               } catch (const WException &) {} //  we simply skip illegal 
> entries
>       }
>  
> 
> === modified file 'src/ui_fsmenu/options.cc'
> --- src/ui_fsmenu/options.cc  2014-09-29 19:25:24 +0000
> +++ src/ui_fsmenu/options.cc  2014-10-27 10:39:23 +0000
> @@ -79,7 +79,7 @@
>       std::sort(entries.begin(), entries.end());
>  
>       for (const LanguageEntry& entry : entries) {
> -             list->add(entry.descname.c_str(), entry.abbreviation, nullptr, 
> entry.abbreviation == language);
> +             list->add(entry.descname, entry.abbreviation, nullptr, 
> entry.abbreviation == language);
>       }
>  }
>  
> @@ -367,13 +367,13 @@
>               /** TRANSLATORS: Screen resolution, e.g. 800 x 600*/
>               m_reslist.add((boost::format(_("%1% x %2%"))
>                                                       % m_resolutions[i].xres
> -                                                     % 
> m_resolutions[i].yres).str().c_str(),
> +                                                     % 
> m_resolutions[i].yres).str(),
>                                                 nullptr, nullptr, selected);
>       }
>       if (!did_select_a_res) {
>               m_reslist.add((boost::format(_("%1% x %2%"))
>                                                       % opt.xres
> -                                                     % 
> opt.yres).str().c_str(),
> +                                                     % opt.yres).str(),
>                                                 nullptr, nullptr, true);
>               uint32_t entry = m_resolutions.size();
>               m_resolutions.resize(entry + 1);
> 
> === modified file 'src/wlapplication.cc'
> --- src/wlapplication.cc      2014-10-16 05:54:05 +0000
> +++ src/wlapplication.cc      2014-10-27 10:39:23 +0000
> @@ -532,7 +532,7 @@
>                                       
> g_fs->ensure_directory_exists(SCREENSHOT_DIR);
>                                       for (uint32_t nr = 0; nr < 10000; ++nr) 
> {
>                                               const std::string filename = 
> (boost::format(SCREENSHOT_DIR "/shot%04u.png")
> -                                                                             
>                                                 % nr).str().c_str();
> +                                                                             
>                                                 % nr).str();
>                                               if (g_fs->file_exists(filename))
>                                                       continue;
>                                               g_gr->screenshot(filename);
> 
> === modified file 'src/wui/actionconfirm.cc'
> --- src/wui/actionconfirm.cc  2014-09-10 14:48:40 +0000
> +++ src/wui/actionconfirm.cc  2014-10-27 10:39:23 +0000
> @@ -31,7 +31,6 @@
>  #include "ui_basic/window.h"
>  #include "wui/interactive_player.h"
>  
> -using boost::format;
>  
>  struct ActionConfirm : public UI::Window {
>       ActionConfirm
> @@ -148,7 +147,7 @@
>       new UI::MultilineTextarea
>               (this,
>                0, 0, 200, 74,
> -              (format(message) % building.descr().descname()).str(),
> +              (boost::format(message) % building.descr().descname()).str(),
>                UI::Align_Center);
>  
>       UI::Button * okbtn =
> 
> === modified file 'src/wui/encyclopedia_window.cc'
> --- src/wui/encyclopedia_window.cc    2014-09-30 05:41:55 +0000
> +++ src/wui/encyclopedia_window.cc    2014-10-27 10:39:23 +0000
> @@ -99,7 +99,7 @@
>  
>       for (uint32_t i = 0; i < ware_vec.size(); i++) {
>               Ware cur = ware_vec[i];
> -             wares.add(cur.m_descr->descname().c_str(), cur.m_i, 
> cur.m_descr->icon());
> +             wares.add(cur.m_descr->descname(), cur.m_i, 
> cur.m_descr->icon());
>       }
>  }
>  
> @@ -124,7 +124,7 @@
>                                &&
>                                
> de->output_ware_types().count(wares.get_selected()))
>                       {
> -                             prodSites.add(de->descname().c_str(), i, 
> de->get_icon());
> +                             prodSites.add(de->descname(), i, 
> de->get_icon());
>                               found = true;
>                       }
>               }
> 
> === modified file 'src/wui/game_debug_ui.cc'
> --- src/wui/game_debug_ui.cc  2014-09-30 05:41:55 +0000
> +++ src/wui/game_debug_ui.cc  2014-10-27 10:39:23 +0000
> @@ -180,7 +180,7 @@
>               }
>               UI::Window::think();
>       } else {
> -             set_title((boost::format("DEAD: %u") % m_serial).str().c_str());
> +             set_title((boost::format("DEAD: %u") % m_serial).str());
>       }
>  
>  }
> @@ -375,7 +375,7 @@
>       {
>               m_ui_immovable.set_title((boost::format("%s (%u)")
>                                                                               
>   % imm->descr().name().c_str()
> -                                                                             
>   % imm->serial()).str().c_str());
> +                                                                             
>   % imm->serial()).str());
>               m_ui_immovable.set_enabled(true);
>       } else {
>               m_ui_immovable.set_title("no immovable");
> @@ -420,7 +420,7 @@
>               m_ui_bobs.add(
>                       (boost::format("%s (%u)")
>                               % temp_bob->descr().name()
> -                             % temp_bob->serial()).str().c_str(),
> +                             % temp_bob->serial()).str(),
>                       temp_bob->serial());
>       }
>  }
> 
> === modified file 'src/wui/game_main_menu_save_game.cc'
> --- src/wui/game_main_menu_save_game.cc       2014-10-07 10:20:18 +0000
> +++ src/wui/game_main_menu_save_game.cc       2014-10-27 10:39:23 +0000
> @@ -34,8 +34,6 @@
>  #include "profile/profile.h"
>  #include "wui/interactive_gamebase.h"
>  
> -using boost::format;
> -
>  InteractiveGameBase & GameMainMenuSaveGame::igbase() {
>       return ref_cast<InteractiveGameBase, UI::Panel>(*get_parent());
>  }
> @@ -168,14 +166,10 @@
>       m_gametime.set_text(gametimestring(gametime));
>  
>       if (gpdp.get_number_of_players() > 0) {
> -             char buf[200];
> -             sprintf
> -                     (buf, "%i %s", gpdp.get_number_of_players(),
> -                     // TODO(GunChleoc): This should be ngettext(" %i 
> player" etc.
> -                     // with boost::format, but it refuses to work
> -                     /** TRANSLATORS: This is preceded by a number */
> -                     ngettext("player", "players", 
> gpdp.get_number_of_players()));
> -                     m_players_label.set_text(buf);
> +             const std::string text =
> +                             (boost::format(ngettext("%u Player", "%u 
> Players", gpdp.get_number_of_players()))
> +                              % static_cast<unsigned 
> int>(gpdp.get_number_of_players())).str();
> +             m_players_label.set_text(text);
>       } else {
>               // Keep label empty
>               m_players_label.set_text("");
> @@ -212,7 +206,7 @@
>               try {
>                       Widelands::GameLoader gl(name, igbase().game());
>                       gl.preload_game(gpdp);
> -                     
> m_ls.add(FileSystem::filename_without_ext(name).c_str(), name);
> +                     m_ls.add(FileSystem::filename_without_ext(name), name);
>               } catch (const WException &) {} //  we simply skip illegal 
> entries
>       }
>  }
> @@ -325,7 +319,7 @@
>                       (&parent,
>                        _("File deletion"),
>                        str
> -                              (format(_("Do you really want to delete the 
> file %s?")) %
> +                              (boost::format(_("Do you really want to delete 
> the file %s?")) %
>                                 FileSystem::fs_filename(filename.c_str())),
>                        YESNO),
>               m_filename(filename)
> 
> === modified file 'src/wui/game_objectives_menu.cc'
> --- src/wui/game_objectives_menu.cc   2014-09-14 11:31:58 +0000
> +++ src/wui/game_objectives_menu.cc   2014-10-27 10:39:23 +0000
> @@ -71,7 +71,7 @@
>               for (uint32_t j = 0;; ++j)
>                       if (j == list_size) {  //  the objective is not in our 
> list
>                               if (should_show)
> -                                     list.add(obj.descname().c_str(), obj);
> +                                     list.add(obj.descname(), obj);
>                               break;
>                       } else if (&list[j] == &obj) {  //  the objective is in 
> our list
>                               if (!should_show)
> @@ -79,7 +79,7 @@
>                               else if (list[j].descname() != obj.descname() 
> || list[j].descr() != obj.descr()) {
>                                       // Update
>                                       list.remove(j);
> -                                     list.add(obj.descname().c_str(), obj);
> +                                     list.add(obj.descname(), obj);
>                               }
>                               break;
>                       }
> 
> === modified file 'src/wui/general_statistics_menu.cc'
> --- src/wui/general_statistics_menu.cc        2014-09-18 18:52:34 +0000
> +++ src/wui/general_statistics_menu.cc        2014-10-27 10:39:23 +0000
> @@ -148,7 +148,7 @@
>  
>       iterate_players_existing_const(p, nr_players, game, player) {
>               const std::string pic = 
> (boost::format("pics/genstats_enable_plr_%02u.png")
> -                                                                             
>  % static_cast<unsigned int>(p)).str().c_str();
> +                                                                             
>  % static_cast<unsigned int>(p)).str();
>               UI::Button & cb =
>                       *new UI::Button
>                               (hbox1, "playerbutton",
> 
> === modified file 'src/wui/interactive_base.cc'
> --- src/wui/interactive_base.cc       2014-10-19 16:24:33 +0000
> +++ src/wui/interactive_base.cc       2014-10-27 10:39:23 +0000
> @@ -57,7 +57,6 @@
>  #include "wui/text_layout.h"
>  #include "wui/unique_window_handler.h"
>  
> -using boost::format;
>  using Widelands::Area;
>  using Widelands::CoordPath;
>  using Widelands::Coords;
> @@ -329,12 +328,12 @@
>                                       (real == 1000 ? std::string() : 
> speed_string(real));
>                       else {
>                               m_label_speed.set_text(
> -                                     (format
> +                                     (boost::format
>                                                /** TRANSLATORS: actual_speed 
> (desired_speed) */
>                                               (_("%1$s (%2$s)"))
>                                               % speed_string(real).c_str()
>                                               % speed_string(desired).c_str()
> -                                     ).str().c_str()
> +                                     ).str()
>                               );
>                       }
>               } else
> @@ -407,7 +406,7 @@
>               const std::string 
> gametime(gametimestring(egbase().get_gametime()));
>               const std::string gametime_text = as_uifont(gametime, 
> UI_FONT_SIZE_SMALL);
>               dst.blit(Point(5, 5), UI::g_fh1->render(gametime_text), 
> CM_Normal, UI::Align_TopLeft);
> -             static format node_format("(%i, %i)");
> +             static boost::format node_format("(%i, %i)");
>  
>               const std::string node_text = as_uifont
>                       ((node_format % m_sel.pos.node.x % 
> m_sel.pos.node.y).str(), UI_FONT_SIZE_SMALL);
> @@ -421,7 +420,7 @@
>  
>       // Blit FPS when in debug mode.
>       if (get_display_flag(dfDebug)) {
> -             static format fps_format("%5.1f fps (avg: %5.1f fps)");
> +             static boost::format fps_format("%5.1f fps (avg: %5.1f fps)");
>               const std::string fps_text = as_uifont
>                       ((fps_format %
>                         (1000.0 / m_frametime) % (1000.0 / (m_avg_usframetime 
> / 1000)))
> @@ -993,7 +992,7 @@
>  
>       if (!obj) {
>               DebugConsole::write
> -                     (str(format("No MapObject with serial number %1%") % 
> serial));
> +                     (str(boost::format("No MapObject with serial number 
> %1%") % serial));
>               return;
>       }
>  
> 
> === modified file 'src/wui/interactive_player.cc'
> --- src/wui/interactive_player.cc     2014-09-19 12:54:54 +0000
> +++ src/wui/interactive_player.cc     2014-10-27 10:39:23 +0000
> @@ -60,8 +60,6 @@
>  
>  using Widelands::Building;
>  using Widelands::Map;
> -using boost::format;
> -
>  
>  namespace  {
>  
> @@ -456,13 +454,13 @@
>  
>       int const n = atoi(args[1].c_str());
>       if (n < 1 || n > MAX_PLAYERS || !game().get_player(n)) {
> -             DebugConsole::write(str(format("Player #%1% does not exist.") % 
> n));
> +             DebugConsole::write(str(boost::format("Player #%1% does not 
> exist.") % n));
>               return;
>       }
>  
>       DebugConsole::write
>               (str
> -                     (format("Switching from #%1% to #%2%.")
> +                     (boost::format("Switching from #%1% to #%2%.")
>                        % static_cast<int>(m_player_number) % n));
>       m_player_number = n;
>       Map              &       map             = egbase().map();
> 
> === modified file 'src/wui/multiplayersetupgroup.cc'
> --- src/wui/multiplayersetupgroup.cc  2014-10-26 12:17:01 +0000
> +++ src/wui/multiplayersetupgroup.cc  2014-10-27 10:39:23 +0000
> @@ -121,7 +121,7 @@
>                                       pic = 
> (boost::format("pics/genstats_enable_plr_0%u.png")
>                                                         % 
> static_cast<unsigned int>(us.position + 1)).str();
>                                       temp_tooltip = (boost::format(_("Player 
> %u"))
> -                                                                             
>  % static_cast<unsigned int>(us.position + 1)).str().c_str();
> +                                                                             
>  % static_cast<unsigned int>(us.position + 1)).str();
>                               } else {
>                                       pic = "pics/menu_tab_watch.png";
>                                       temp_tooltip = _("Spectator");
> @@ -174,7 +174,7 @@
>               set_size(w, h);
>  
>               const std::string pic = 
> (boost::format("pics/fsel_editor_set_player_0%i_pos.png")
> -                                                                             
>  % static_cast<unsigned int>(id + 1)).str().c_str();
> +                                                                             
>  % static_cast<unsigned int>(id + 1)).str();
>               player =
>                       new UI::Icon(this, 0, 0, h, h, g_gr->images().get(pic));
>               add(player, UI::Box::AlignCenter);
> @@ -288,11 +288,11 @@
>                       type 
> ->set_pic(g_gr->images().get("pics/shared_in.png"));
>  
>                       const std::string pic = 
> (boost::format("pics/fsel_editor_set_player_0%u_pos.png")
> -                                                                             
>          % static_cast<unsigned int>(player_setting.shared_in)).str().c_str();
> +                                                                             
>          % static_cast<unsigned int>(player_setting.shared_in)).str();
>  
>                       tribe->set_pic(g_gr->images().get(pic));
>                       tribe->set_tooltip((boost::format(_("Player %u"))
> -                                                                       % 
> static_cast<unsigned int>(player_setting.shared_in)).str().c_str());
> +                                                                       % 
> static_cast<unsigned int>(player_setting.shared_in)).str());
>  
>                       team ->set_visible(false);
>                       team ->set_enabled(false);
> 
> === modified file 'src/wui/plot_area.cc'
> --- src/wui/plot_area.cc      2014-09-18 18:52:34 +0000
> +++ src/wui/plot_area.cc      2014-10-27 10:39:23 +0000
> @@ -35,7 +35,6 @@
>  #include "wui/text_layout.h"
>  
>  using namespace std;
> -using boost::format;
>  
>  namespace {
>  
> @@ -71,7 +70,8 @@
>  };
>  
>  string ytick_text_style(const string& text, const RGBColor& clr) {
> -     static format f("<rt><p><font face=DejaVuSansCondensed size=13 
> color=%02x%02x%02x>%s</font></p></rt>");
> +     static boost::format
> +                     f("<rt><p><font face=DejaVuSansCondensed size=13 
> color=%02x%02x%02x>%s</font></p></rt>");
>       f % int(clr.r) % int(clr.g) % int(clr.b);
>       f % text;
>       return f.str();
> 


-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1385859/+merge/239705
Your team Widelands Developers is subscribed to branch 
lp:~widelands-dev/widelands/bug-1385859.

_______________________________________________
Mailing list: https://launchpad.net/~widelands-dev
Post to     : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to