diff options
Diffstat (limited to 'community-testing/wesnoth')
-rw-r--r-- | community-testing/wesnoth/PKGBUILD | 56 | ||||
-rw-r--r-- | community-testing/wesnoth/boost_foreach.patch | 11890 | ||||
-rw-r--r-- | community-testing/wesnoth/wesnoth.install | 9 | ||||
-rw-r--r-- | community-testing/wesnoth/wesnoth.tmpfiles.conf | 1 | ||||
-rwxr-xr-x | community-testing/wesnoth/wesnothd.rc.d | 40 |
5 files changed, 0 insertions, 11996 deletions
diff --git a/community-testing/wesnoth/PKGBUILD b/community-testing/wesnoth/PKGBUILD deleted file mode 100644 index 7dd4f3584..000000000 --- a/community-testing/wesnoth/PKGBUILD +++ /dev/null @@ -1,56 +0,0 @@ -# $Id: PKGBUILD 73779 2012-07-15 13:21:13Z ibiru $ -# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com> -# Contributor: Jan de Groot <jgc@archlinux.org> -# Contributor: Tobias Powalowski <tpowa@archlinux.org> -# Contributor: Jacobo Arvelo <unix4all@ya.com> -# Contributor: Douglas Soares de Andrade <douglas@archlinux.org> - -pkgname=wesnoth -pkgver=1.10.3 -pkgrel=2 -pkgdesc="A turn-based strategy game on a fantasy world" -arch=('i686' 'x86_64') -license=('GPL') -url="http://www.wesnoth.org/" -depends=('sdl_ttf' 'sdl_net' 'sdl_mixer' 'sdl_image' 'fribidi' 'boost-libs' 'pango' 'lua' "wesnoth-data" 'dbus-core' 'python2') -makedepends=('boost' 'cmake') -install=wesnoth.install -options=(!emptydirs) -source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 - wesnoth.tmpfiles.conf - wesnothd.rc.d - boost_foreach.patch) -md5sums=('b25354c71d58f82c2c60cc12c6f09c36' - 'b8122f5054e3895c9c054e87460869dc' - '85659b47d22dfdf4e4d046556973fc3e' - '07e78c6ece06ed10119fc57ebc16ea9d') - -build() { - cd "$srcdir/$pkgname-$pkgver" - - patch -Np0 < $srcdir/boost_foreach.patch - - mkdir build && cd build - cmake .. \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DENABLE_OMP=ON \ - -DENABLE_TOOLS=ON \ - -DMANDIR=share/man \ - -DFIFO_DIR=/var/run/wesnothd - make -} - -package() { - cd "$srcdir/$pkgname-$pkgver" - - cd build - make DESTDIR="$pkgdir" install - - rm -r $pkgdir/usr/share/applications - rm -r $pkgdir/usr/share/doc - rm -r $pkgdir/usr/share/pixmaps - rm -r $pkgdir/usr/share/wesnoth - - install -Dm644 "$srcdir/wesnoth.tmpfiles.conf" "$pkgdir/usr/lib/tmpfiles.d/wesnoth.conf" - install -Dm755 "$srcdir/wesnothd.rc.d" "$pkgdir/etc/rc.d/wesnothd" -} diff --git a/community-testing/wesnoth/boost_foreach.patch b/community-testing/wesnoth/boost_foreach.patch deleted file mode 100644 index 95b98828e..000000000 --- a/community-testing/wesnoth/boost_foreach.patch +++ /dev/null @@ -1,11890 +0,0 @@ ------------------------------------------------------------------------- -r54625 | loonycyborg | 2012-07-08 16:26:21 +0200 (So, 08 Jul 2012) | 5 lines - -Backport r54604: Use BOOST_FOREACH directly instead of #define foreach BOOST_FOREACH - -The define is extremely unreliable, will break compile with boost >= -1.50 and upstream can't fix issues with it, see -https://svn.boost.org/trac/boost/ticket/6131 - -Index: src/foreach.hpp (deleted) -=================================================================== -Index: src/scripting/lua.cpp -=================================================================== ---- src/scripting/lua.cpp (revision 54624) -+++ src/scripting/lua.cpp (revision 54625) -@@ -39,7 +39,6 @@ - #include "ai/manager.hpp" - #include "attack_prediction.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_preferences.hpp" - #include "gamestatus.hpp" -@@ -77,6 +76,8 @@ - #include "scripting/debug_lua.hpp" - #endif - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_scripting_lua("scripting/lua"); - #define LOG_LUA LOG_STREAM(info, log_scripting_lua) - #define ERR_LUA LOG_STREAM(err, log_scripting_lua) -@@ -87,7 +88,7 @@ - void extract_preload_scripts(config const &game_config) - { - preload_scripts.clear(); -- foreach (config const &cfg, game_config.child_range("lua")) { -+ BOOST_FOREACH(config const &cfg, game_config.child_range("lua")) { - preload_scripts.push_back(cfg); - } - preload_config = game_config.child("game_config"); -@@ -254,7 +255,7 @@ - return; - - int k = 1; -- foreach (const config::any_child &ch, cfg.all_children_range()) -+ BOOST_FOREACH(const config::any_child &ch, cfg.all_children_range()) - { - lua_createtable(L, 2, 0); - lua_pushstring(L, ch.key.c_str()); -@@ -264,7 +265,7 @@ - lua_rawseti(L, -2, 2); - lua_rawseti(L, -2, k++); - } -- foreach (const config::attribute &attr, cfg.attribute_range()) -+ BOOST_FOREACH(const config::attribute &attr, cfg.attribute_range()) - { - luaW_pushscalar(L, attr.second); - lua_setfield(L, -2, attr.first.c_str()); -@@ -534,7 +535,7 @@ - { - if (ptr) return ptr; - if (side) { -- foreach (unit &u, (*resources::teams)[side - 1].recall_list()) { -+ BOOST_FOREACH(unit &u, (*resources::teams)[side - 1].recall_list()) { - if (u.underlying_id() == uid) return &u; - } - return NULL; -@@ -710,7 +711,7 @@ - if (shallow_literal || strcmp(m, "__shallow_parsed") == 0) - { - lua_newtable(L); -- foreach (const config::attribute &a, v->get_config().attribute_range()) { -+ BOOST_FOREACH(const config::attribute &a, v->get_config().attribute_range()) { - if (shallow_literal) - luaW_pushscalar(L, a.second); - else -@@ -813,7 +814,7 @@ - const std::vector<std::string>& vector = accessor; \ - lua_createtable(L, vector.size(), 0); \ - int i = 1; \ -- foreach (const std::string& s, vector) { \ -+ BOOST_FOREACH(const std::string& s, vector) { \ - lua_pushstring(L, s.c_str()); \ - lua_rawseti(L, -2, i); \ - ++i; \ -@@ -1292,9 +1293,9 @@ - lua_rawget(L, LUA_REGISTRYINDEX); - lua_newtable(L); - int i = 1, s = 1; -- foreach (team &t, *resources::teams) -+ BOOST_FOREACH(team &t, *resources::teams) - { -- foreach (unit &u, t.recall_list()) -+ BOOST_FOREACH(unit &u, t.recall_list()) - { - if (!filter.null()) { - scoped_recall_unit auto_store("this_unit", -@@ -1560,7 +1561,7 @@ - std::set<std::string> const &recruits = t.recruits(); - lua_createtable(L, recruits.size(), 0); - int i = 1; -- foreach (std::string const &r, t.recruits()) { -+ BOOST_FOREACH(std::string const &r, t.recruits()) { - lua_pushstring(L, r.c_str()); - lua_rawseti(L, -2, i++); - } -@@ -3130,7 +3131,7 @@ - - lua_createtable(L, res.size(), 0); - int i = 1; -- foreach (map_location const &loc, res) -+ BOOST_FOREACH(map_location const &loc, res) - { - lua_createtable(L, 2, 0); - lua_pushinteger(L, loc.x + 1); -@@ -3227,7 +3228,7 @@ - lua_rawget(L, LUA_REGISTRYINDEX); - lua_createtable(L, sides.size(), 0); - unsigned index = 1; -- foreach(int side, sides) { -+ BOOST_FOREACH(int side, sides) { - // Create a full userdata containing a pointer to the team. - team** t = static_cast<team**>(lua_newuserdata(L, sizeof(team*))); - *t = &((*resources::teams)[side - 1]); -@@ -3247,7 +3248,7 @@ - static int intf_get_traits(lua_State* L) - { - lua_newtable(L); -- foreach(const config& trait, unit_types.traits()) { -+ BOOST_FOREACH(const config& trait, unit_types.traits()) { - const std::string& id = trait["id"]; - //It seems the engine does nowhere check the id field for emptyness or duplicates - //(also not later on). -@@ -3767,7 +3768,7 @@ - , static_cast<void *>(const_cast<char *>(&gettypeKey))); - lua_rawget(L, LUA_REGISTRYINDEX); - lua_newtable(L); -- foreach (const unit_type_data::unit_type_map::value_type &ut, unit_types.types()) -+ BOOST_FOREACH(const unit_type_data::unit_type_map::value_type &ut, unit_types.types()) - { - lua_createtable(L, 0, 1); - lua_pushstring(L, ut.first.c_str()); -@@ -3786,7 +3787,7 @@ - lua_rawget(L, LUA_REGISTRYINDEX); - const race_map& races = unit_types.races(); - lua_createtable(L, 0, races.size()); -- foreach(const race_map::value_type &race, races) -+ BOOST_FOREACH(const race_map::value_type &race, races) - { - lua_createtable(L, 0, 1); - char const* id = race.first.c_str(); -@@ -3801,10 +3802,10 @@ - - // Execute the preload scripts. - game_config::load_config(preload_config); -- foreach (const config &cfg, preload_scripts) { -+ BOOST_FOREACH(const config &cfg, preload_scripts) { - execute(cfg["code"].str().c_str(), 0, 0); - } -- foreach (const config &cfg, level_.child_range("lua")) { -+ BOOST_FOREACH(const config &cfg, level_.child_range("lua")) { - execute(cfg["code"].str().c_str(), 0, 0); - } - -@@ -3822,7 +3823,7 @@ - - static bool is_handled_file_tag(const std::string &s) - { -- foreach (char const *t, handled_file_tags) { -+ BOOST_FOREACH(char const *t, handled_file_tags) { - if (s == t) return true; - } - return false; -@@ -3841,7 +3842,7 @@ - - lua_newtable(L); - int k = 1; -- foreach (const config::any_child &v, level_.all_children_range()) -+ BOOST_FOREACH(const config::any_child &v, level_.all_children_range()) - { - if (is_handled_file_tag(v.key)) continue; - lua_createtable(L, 2, 0); -@@ -3861,7 +3862,7 @@ - */ - void LuaKernel::save_game(config &cfg) - { -- foreach (const config &v, level_.child_range("lua")) { -+ BOOST_FOREACH(const config &v, level_.child_range("lua")) { - cfg.add_child("lua", v); - } - -Index: src/dialogs.cpp -=================================================================== ---- src/dialogs.cpp (revision 54624) -+++ src/dialogs.cpp (revision 54625) -@@ -22,7 +22,6 @@ - - #include "actions.hpp" - #include "dialogs.hpp" --#include "foreach.hpp" - #include "game_events.hpp" - #include "game_display.hpp" - #include "game_preferences.hpp" -@@ -49,6 +48,7 @@ - #include "gui/dialogs/game_save.hpp" - #include "gui/dialogs/transient_message.hpp" - -+#include <boost/foreach.hpp> - - //#ifdef _WIN32 - //#include "locale.h" -@@ -95,7 +95,7 @@ - } - - bool always_display = false; -- foreach (const config &mod, u->get_modification_advances()) -+ BOOST_FOREACH(const config &mod, u->get_modification_advances()) - { - if (mod["always_display"].to_bool()) always_display = true; - sample_units.push_back(::get_advanced_unit(*u, u->type_id())); -@@ -1009,7 +1009,7 @@ - } - - //FIXME: This probably must be move into a unit_type function -- foreach (const config &tr, t->possible_traits()) -+ BOOST_FOREACH(const config &tr, t->possible_traits()) - { - if (tr["availability"] != "musthave") continue; - std::string gender_string = (!t->genders().empty() && t->genders().front()== unit_race::FEMALE) ? "female_name" : "male_name"; -@@ -1038,7 +1038,7 @@ - // Check if AMLA color is needed - // FIXME: not sure if it's fully accurate (but not very important for unit_type) - // xp_color also need a simpler function for doing this -- foreach (const config &adv, t->modification_advancements()) -+ BOOST_FOREACH(const config &adv, t->modification_advancements()) - { - if (!adv["strict_amla"].to_bool() || !t->can_advance()) { - det.xp_color = "<170,0,255>"; // from unit::xp_color() -Index: src/menu_events.cpp -=================================================================== ---- src/menu_events.cpp (revision 54624) -+++ src/menu_events.cpp (revision 54625) -@@ -27,7 +27,6 @@ - #include "dialogs.hpp" - #include "formatter.hpp" - #include "filechooser.hpp" --#include "foreach.hpp" - #include "game_end_exceptions.hpp" - #include "game_events.hpp" - #include "game_preferences.hpp" -@@ -66,6 +65,7 @@ - #include "widgets/combo.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_engine("engine"); - #define ERR_NG LOG_STREAM(err, log_engine) -@@ -863,7 +863,7 @@ - - - DBG_WB <<"menu_handler::recall: Contents of wb-modified recall list:\n"; -- foreach(const unit* unit, recall_list_team) -+ BOOST_FOREACH(const unit* unit, recall_list_team) - { - DBG_WB << unit->name() << " [" << unit->id() <<"]\n"; - } -@@ -896,7 +896,7 @@ - options.push_back(heading.str()); - options_to_filter.push_back(options.back()); - -- foreach (const unit* u, recall_list_team) -+ BOOST_FOREACH(const unit* u, recall_list_team) - { - std::stringstream option, option_to_filter; - std::string name = u->name(); -@@ -933,7 +933,7 @@ - option_to_filter << u->type_name() << " " << name << " " << u->level(); - - option << COLUMN_SEPARATOR; -- foreach (const t_string& trait, u->trait_names()) { -+ BOOST_FOREACH(const t_string& trait, u->trait_names()) { - option << trait << '\n'; - option_to_filter << " " << trait; - } -@@ -1540,7 +1540,7 @@ - _("Type"); - options.push_back(heading); - -- foreach (const unit_type_data::unit_type_map::value_type &i, unit_types.types()) -+ BOOST_FOREACH(const unit_type_data::unit_type_map::value_type &i, unit_types.types()) - { - std::stringstream row; - -@@ -2047,7 +2047,7 @@ - std::vector<std::string> get_commands_list() const - { - std::vector<std::string> res; -- foreach(typename command_map::value_type i, command_map_) { -+ BOOST_FOREACH(typename command_map::value_type i, command_map_) { - res.push_back(i.first); - } - return res; -@@ -2638,7 +2638,7 @@ - - if (const config &alias_list = preferences::get_alias()) - { -- foreach (const config::attribute &a, alias_list.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &a, alias_list.attribute_range()) { - register_alias(a.second, a.first); - } - } -@@ -3241,7 +3241,7 @@ - tile->rebuild_cache(tod_id, &tile_logs); - - int order = 1; -- foreach(const terrain_builder::tile::log_details det, tile_logs) { -+ BOOST_FOREACH(const terrain_builder::tile::log_details det, tile_logs) { - const terrain_builder::tile::rule_image_rand& ri = *det.first; - const terrain_builder::rule_image_variant& variant = *det.second; - -@@ -3356,7 +3356,7 @@ - void console_handler::do_choose_level() { - std::vector<std::string> options; - int next = 0, nb = 0; -- foreach (const config &sc, menu_handler_.game_config_.child_range("scenario")) -+ BOOST_FOREACH(const config &sc, menu_handler_.game_config_.child_range("scenario")) - { - const std::string &id = sc["id"]; - options.push_back(id); -@@ -3367,7 +3367,7 @@ - // find scenarios of multiplayer campaigns - // (assumes that scenarios are ordered properly in the game_config) - std::string& scenario = menu_handler_.gamestate_.mp_settings().mp_scenario; -- foreach (const config &mp, menu_handler_.game_config_.child_range("multiplayer")) -+ BOOST_FOREACH(const config &mp, menu_handler_.game_config_.child_range("multiplayer")) - { - if (mp["id"] == scenario) - { -@@ -3596,7 +3596,7 @@ - } - }*/ - void console_handler::do_discover() { -- foreach (const unit_type_data::unit_type_map::value_type &i, unit_types.types()) { -+ BOOST_FOREACH(const unit_type_data::unit_type_map::value_type &i, unit_types.types()) { - preferences::encountered_units().insert(i.second.id()); - } - } -Index: src/multiplayer_wait.cpp -=================================================================== ---- src/multiplayer_wait.cpp (revision 54624) -+++ src/multiplayer_wait.cpp (revision 54625) -@@ -16,7 +16,6 @@ - #include "global.hpp" - - #include "dialogs.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "game_preferences.hpp" - #include "gui/dialogs/transient_message.hpp" -@@ -30,6 +29,8 @@ - #include "wml_separators.hpp" - #include "formula_string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_network("network"); - #define DBG_NW LOG_STREAM(debug, log_network) - #define LOG_NW LOG_STREAM(info, log_network) -@@ -222,7 +223,7 @@ - //available side. - const config *side_choice = NULL; - int side_num = -1, nb_sides = 0; -- foreach (const config &sd, level_.child_range("side")) -+ BOOST_FOREACH(const config &sd, level_.child_range("side")) - { - if (sd["controller"] == "reserved" && sd["current_player"] == preferences::login()) - { -@@ -275,7 +276,7 @@ - color = game_config::color_info(color_str).index() - 1; - - std::vector<const config *> leader_sides; -- foreach (const config &side, possible_sides) { -+ BOOST_FOREACH(const config &side, possible_sides) { - leader_sides.push_back(&side); - } - -@@ -287,7 +288,7 @@ - } - - std::vector<std::string> choices; -- foreach (const config *s, leader_sides) -+ BOOST_FOREACH(const config *s, leader_sides) - { - const config &side = *s; - const std::string &name = side["name"]; -@@ -442,7 +443,7 @@ - std::vector<std::string> details; - std::vector<std::string> playerlist; - -- foreach (const config &sd, level_.child_range("side")) -+ BOOST_FOREACH(const config &sd, level_.child_range("side")) - { - if (!sd["allow_player"].to_bool(true)) { - continue; -@@ -458,7 +459,7 @@ - // Hack: if there is a unit which can recruit, use it as a - // leader. Necessary to display leader information when loading - // saves. -- foreach (const config &side_unit, sd.child_range("unit")) -+ BOOST_FOREACH(const config &side_unit, sd.child_range("unit")) - { - if (side_unit["canrecruit"].to_bool()) { - leader_type = side_unit["type"].str(); -Index: src/serialization/schema_validator.cpp -=================================================================== ---- src/serialization/schema_validator.cpp (revision 54624) -+++ src/serialization/schema_validator.cpp (revision 54625) -@@ -17,12 +17,13 @@ - - - #include "filesystem.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "log.hpp" - #include "serialization/preprocessor.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - namespace schema_validation{ - - static lg::log_domain log_validation("validation"); -@@ -143,14 +144,14 @@ - } catch(config::error&) { - return false; - } -- foreach (const config &g, cfg.child_range("wml_schema")) { -- foreach (const config &schema, g.child_range("tag")) { -+ BOOST_FOREACH(const config &g, cfg.child_range("wml_schema")) { -+ BOOST_FOREACH(const config &schema, g.child_range("tag")) { - if (schema["name"].str() == "root"){ - //@NOTE Don't know, maybe merging of roots needed. - root_ = class_tag (schema); - } - } -- foreach (const config &type, g.child_range("type")) { -+ BOOST_FOREACH(const config &type, g.child_range("type")) { - try{ - types_[type["name"].str()] = boost::regex( type["value"].str()); - } -Index: src/serialization/preprocessor.cpp -=================================================================== ---- src/serialization/preprocessor.cpp (revision 54624) -+++ src/serialization/preprocessor.cpp (revision 54625) -@@ -23,7 +23,6 @@ - - #include "config.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "game_config.hpp" - #include "log.hpp" - #include "wesconfig.h" -@@ -34,6 +33,8 @@ - #include "util.hpp" - #include "version.hpp" - -+#include <boost/foreach.hpp> -+ - #include <stdexcept> - - static lg::log_domain log_config("config"); -@@ -64,7 +65,7 @@ - int n = 0; - s >> std::hex >> n; - -- foreach(const t_file_number_map::value_type& p, file_number_map){ -+ BOOST_FOREACH(const t_file_number_map::value_type& p, file_number_map){ - if(p.second == n) - return p.first; - } -@@ -142,7 +143,7 @@ - writer.write_key_val("linenum", lexical_cast<std::string>(linenum)); - writer.write_key_val("location", get_location(location)); - -- foreach (const std::string &arg, arguments) -+ BOOST_FOREACH(const std::string &arg, arguments) - write_argument(writer, arg); - - writer.close_child(key); -@@ -160,7 +161,7 @@ - linenum = cfg["linenum"]; - location = cfg["location"].str(); - -- foreach (const config &arg, cfg.child_range("argument")) -+ BOOST_FOREACH(const config &arg, cfg.child_range("argument")) - read_argument(arg); - } - -@@ -1157,14 +1158,14 @@ - get_files_in_dir(res_name, &files, &dirs, ENTIRE_FILE_PATH, SKIP_MEDIA_DIR, DO_REORDER); - - // subdirectories -- foreach(const std::string& dir, dirs) -+ BOOST_FOREACH(const std::string& dir, dirs) - { - LOG_PREPROC<<"processing sub-dir: "<<dir<<'\n'; - preprocess_resource(dir,defines_map,write_cfg,write_plain_cfg,target_directory); - } - - // files in current directory -- foreach(const std::string& file, files) -+ BOOST_FOREACH(const std::string& file, files) - { - preprocess_resource(file,defines_map,write_cfg,write_plain_cfg,target_directory); - } -Index: src/serialization/parser.cpp -=================================================================== ---- src/serialization/parser.cpp (revision 54624) -+++ src/serialization/parser.cpp (revision 54625) -@@ -32,7 +32,6 @@ - #include "serialization/tokenizer.hpp" - #include "serialization/string_utils.hpp" - #include "serialization/validator.hpp" --#include "foreach.hpp" - - #include <stack> - -@@ -40,6 +39,7 @@ - #include <boost/iostreams/filter/gzip.hpp> - #include <boost/algorithm/string/replace.hpp> - #include <boost/variant.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_config("config"); - #define ERR_CF LOG_STREAM(err, log_config) -@@ -343,7 +343,7 @@ - { - i18n_symbols["pos"] = ::lineno_string(lineno); - std::string result = _(error_string); -- foreach(utils::string_map::value_type& var, i18n_symbols) -+ BOOST_FOREACH(utils::string_map::value_type& var, i18n_symbols) - boost::algorithm::replace_all(result, std::string("$") + var.first, std::string(var.second)); - return result; - } -@@ -503,11 +503,11 @@ - if (tab > max_recursion_levels) - throw config::error("Too many recursion levels in config write"); - -- foreach (const config::attribute &i, cfg.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, cfg.attribute_range()) { - write_key_val(out, i.first, i.second, tab, textdomain); - } - -- foreach (const config::any_child &item, cfg.all_children_range()) -+ BOOST_FOREACH(const config::any_child &item, cfg.all_children_range()) - { - write_open_child(out, item.key, tab); - write_internal(item.cfg, out, textdomain, tab + 1); -Index: src/game_controller_abstract.cpp -=================================================================== ---- src/game_controller_abstract.cpp (revision 54624) -+++ src/game_controller_abstract.cpp (revision 54625) -@@ -15,7 +15,6 @@ - - #include "game_controller_abstract.hpp" - --#include "foreach.hpp" - #include "game_display.hpp" - #include "gettext.hpp" - #include "hotkeys.hpp" -@@ -24,6 +23,8 @@ - - #include "preferences.hpp" - -+#include <boost/foreach.hpp> -+ - #include <iostream> - - game_controller_abstract::game_controller_abstract(const commandline_options &cmdline_opts) : -@@ -80,7 +81,7 @@ - language_def locale; - if(cmdline_opts_.language) { - std::vector<language_def> langs = get_languages(); -- foreach(const language_def & def, langs) { -+ BOOST_FOREACH(const language_def & def, langs) { - if(def.localename == *cmdline_opts_.language) { - locale = def; - break; -Index: src/terrain.cpp -=================================================================== ---- src/terrain.cpp (revision 54624) -+++ src/terrain.cpp (revision 54625) -@@ -15,13 +15,14 @@ - - #include "global.hpp" - --#include "foreach.hpp" - #include "gettext.hpp" - #include "log.hpp" - #include "serialization/string_utils.hpp" - #include "terrain.hpp" - #include "util.hpp" - -+#include <boost/foreach.hpp> -+ - #include <set> - - static lg::log_domain log_config("config"); -@@ -284,7 +285,7 @@ - t_translation::t_list& terrain_list, - std::map<t_translation::t_terrain, terrain_type>& letter_to_terrain) - { -- foreach (const config &t, cfgs) -+ BOOST_FOREACH(const config &t, cfgs) - { - terrain_type terrain(t); - DBG_G << "create_terrain_maps: " << terrain.number() << " " -@@ -301,9 +302,9 @@ - std::vector<std::string> eg2 = utils::split(terrain.editor_group()); - std::set<std::string> egs; - bool clean_merge = true; -- foreach(std::string& t, eg1) -+ BOOST_FOREACH(std::string& t, eg1) - clean_merge &= egs.insert(t).second; -- foreach(std::string& t, eg2) -+ BOOST_FOREACH(std::string& t, eg2) - clean_merge &= egs.insert(t).second; - - std::string joined = utils::join(egs); -Index: src/config.cpp -=================================================================== ---- src/config.cpp (revision 54624) -+++ src/config.cpp (revision 54625) -@@ -22,7 +22,6 @@ - #include "global.hpp" - - #include "config.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "serialization/string_utils.hpp" - #include "util.hpp" -@@ -31,6 +30,7 @@ - #include <cstring> - #include <deque> - #include <boost/variant.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_config("config"); - #define ERR_CF LOG_STREAM(err, log_config) -@@ -255,7 +255,7 @@ - { - check_valid(cfg); - -- foreach (const any_child &value, cfg.all_children_range()) { -+ BOOST_FOREACH(const any_child &value, cfg.all_children_range()) { - add_child(value.key, value.cfg); - } - } -@@ -263,7 +263,7 @@ - void config::append(const config &cfg) - { - append_children(cfg); -- foreach (const attribute &v, cfg.values) { -+ BOOST_FOREACH(const attribute &v, cfg.values) { - values[v.first] = v.second; - } - } -@@ -275,7 +275,7 @@ - if (child_count(key) < 2) return; - - config merged_children; -- foreach (const config &cfg, child_range(key)) { -+ BOOST_FOREACH(const config &cfg, child_range(key)) { - merged_children.append(cfg); - } - -@@ -291,7 +291,7 @@ - - typedef std::map<std::string, config> config_map; - config_map merged_children_map; -- foreach (const config &cfg, child_range(key)) { -+ BOOST_FOREACH(const config &cfg, child_range(key)) { - const std::string &value = cfg[attribute]; - config_map::iterator m = merged_children_map.find(value); - if ( m!=merged_children_map.end() ) { -@@ -302,7 +302,7 @@ - } - - clear_children(key); -- foreach (const config_map::value_type &i, merged_children_map) { -+ BOOST_FOREACH(const config_map::value_type &i, merged_children_map) { - add_child(key,i.second); - } - } -@@ -459,7 +459,7 @@ - ordered_children.erase(std::remove_if(ordered_children.begin(), - ordered_children.end(), remove_ordered(i)), ordered_children.end()); - -- foreach (config *c, i->second) { -+ BOOST_FOREACH(config *c, i->second) { - delete c; - } - -@@ -495,7 +495,7 @@ - - values.erase(key); - -- foreach (const any_child &value, all_children_range()) { -+ BOOST_FOREACH(const any_child &value, all_children_range()) { - const_cast<config *>(&value.cfg)->recursive_clear_value(key); - } - } -@@ -506,7 +506,7 @@ - /* Find the position with the correct index and decrement all the - indices in the ordering that are above this index. */ - unsigned found = 0; -- foreach (child_pos &p, ordered_children) -+ BOOST_FOREACH(child_pos &p, ordered_children) - { - if (p.pos != pos) continue; - if (p.index == index) -@@ -590,7 +590,7 @@ - check_valid(cfg); - - assert(this != &cfg); -- foreach (const attribute &v, cfg.values) { -+ BOOST_FOREACH(const attribute &v, cfg.values) { - values[v.first] = v.second; - } - } -@@ -860,21 +860,21 @@ - if (track) values[diff_track_attribute] = "modified"; - - if (const config &inserts = diff.child("insert")) { -- foreach (const attribute &v, inserts.attribute_range()) { -+ BOOST_FOREACH(const attribute &v, inserts.attribute_range()) { - values[v.first] = v.second; - } - } - - if (const config &deletes = diff.child("delete")) { -- foreach (const attribute &v, deletes.attribute_range()) { -+ BOOST_FOREACH(const attribute &v, deletes.attribute_range()) { - values.erase(v.first); - } - } - -- foreach (const config &i, diff.child_range("change_child")) -+ BOOST_FOREACH(const config &i, diff.child_range("change_child")) - { - const size_t index = lexical_cast<size_t>(i["index"].str()); -- foreach (const any_child &item, i.all_children_range()) -+ BOOST_FOREACH(const any_child &item, i.all_children_range()) - { - if (item.key.empty()) { - continue; -@@ -889,19 +889,19 @@ - } - } - -- foreach (const config &i, diff.child_range("insert_child")) -+ BOOST_FOREACH(const config &i, diff.child_range("insert_child")) - { - const size_t index = lexical_cast<size_t>(i["index"].str()); -- foreach (const any_child &item, i.all_children_range()) { -+ BOOST_FOREACH(const any_child &item, i.all_children_range()) { - config& inserted = add_child_at(item.key, item.cfg, index); - if (track) inserted[diff_track_attribute] = "new"; - } - } - -- foreach (const config &i, diff.child_range("delete_child")) -+ BOOST_FOREACH(const config &i, diff.child_range("delete_child")) - { - const size_t index = lexical_cast<size_t>(i["index"].str()); -- foreach (const any_child &item, i.all_children_range()) { -+ BOOST_FOREACH(const any_child &item, i.all_children_range()) { - if (!track) { - remove_child(item.key, index); - } else { -@@ -918,18 +918,18 @@ - void config::clear_diff_track(const config& diff) - { - remove_attribute(diff_track_attribute); -- foreach (const config &i, diff.child_range("delete_child")) -+ BOOST_FOREACH(const config &i, diff.child_range("delete_child")) - { - const size_t index = lexical_cast<size_t>(i["index"].str()); -- foreach (const any_child &item, i.all_children_range()) { -+ BOOST_FOREACH(const any_child &item, i.all_children_range()) { - remove_child(item.key, index); - } - } - -- foreach (const config &i, diff.child_range("change_child")) -+ BOOST_FOREACH(const config &i, diff.child_range("change_child")) - { - const size_t index = lexical_cast<size_t>(i["index"].str()); -- foreach (const any_child &item, i.all_children_range()) -+ BOOST_FOREACH(const any_child &item, i.all_children_range()) - { - if (item.key.empty()) { - continue; -@@ -943,7 +943,7 @@ - itor->second[index]->clear_diff_track(item.cfg); - } - } -- foreach (const any_child &value, all_children_range()) { -+ BOOST_FOREACH(const any_child &value, all_children_range()) { - const_cast<config *>(&value.cfg)->remove_attribute(diff_track_attribute); - } - } -@@ -984,20 +984,20 @@ - { - check_valid(filter); - -- foreach (const attribute &i, filter.attribute_range()) -+ BOOST_FOREACH(const attribute &i, filter.attribute_range()) - { - const attribute_value *v = get(i.first); - if (!v || *v != i.second) return false; - } - -- foreach (const any_child &i, filter.all_children_range()) -+ BOOST_FOREACH(const any_child &i, filter.all_children_range()) - { - if (i.key == "not") { - if (matches(i.cfg)) return false; - continue; - } - bool found = false; -- foreach (const config &j, child_range(i.key)) { -+ BOOST_FOREACH(const config &j, child_range(i.key)) { - if (j.matches(i.cfg)) { - found = true; - break; -@@ -1021,11 +1021,11 @@ - { - static int i = 0; - i++; -- foreach (const config::attribute &val, cfg.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &val, cfg.attribute_range()) { - for (int j = 0; j < i-1; j++){ outstream << char(9); } - outstream << val.first << " = " << val.second << '\n'; - } -- foreach (const config::any_child &child, cfg.all_children_range()) -+ BOOST_FOREACH(const config::any_child &child, cfg.all_children_range()) - { - for (int j = 0; j < i - 1; ++j) outstream << char(9); - outstream << "[" << child.key << "]\n"; -@@ -1054,7 +1054,7 @@ - hash_str[hash_length] = 0; - - i = 0; -- foreach (const attribute &val, values) -+ BOOST_FOREACH(const attribute &val, values) - { - for (c = val.first.begin(); c != val.first.end(); ++c) { - hash_str[i] ^= *c; -@@ -1067,10 +1067,10 @@ - } - } - -- foreach (const any_child &ch, all_children_range()) -+ BOOST_FOREACH(const any_child &ch, all_children_range()) - { - std::string child_hash = ch.cfg.hash(); -- foreach (char c, child_hash) { -+ BOOST_FOREACH(char c, child_hash) { - hash_str[i] ^= c; - ++i; - if(i == hash_length) { -Index: src/soundsource.cpp -=================================================================== ---- src/soundsource.cpp (revision 54624) -+++ src/soundsource.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - - #include "display.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "serialization/string_utils.hpp" - #include "sound.hpp" -Index: src/sound.cpp -=================================================================== ---- src/sound.cpp (revision 54624) -+++ src/sound.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "config.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "log.hpp" - #include "serialization/string_utils.hpp" -@@ -27,6 +26,8 @@ - - #include "SDL_mixer.h" - -+#include <boost/foreach.hpp> -+ - #include <list> - - static lg::log_domain log_audio("audio"); -@@ -596,7 +597,7 @@ - return; - - // If current track no longer on playlist, change it. -- foreach (const music_track &m, current_track_list) { -+ BOOST_FOREACH(const music_track &m, current_track_list) { - if (current_track == m) - return; - } -@@ -614,7 +615,7 @@ - { - // First entry clears playlist, others append to it. - bool append = false; -- foreach (music_track &m, current_track_list) { -+ BOOST_FOREACH(music_track &m, current_track_list) { - m.write(snapshot, append); - append = true; - } -Index: src/game_preferences.cpp -=================================================================== ---- src/game_preferences.cpp (revision 54624) -+++ src/game_preferences.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #define GETTEXT_DOMAIN "wesnoth-lib" - --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_preferences.hpp" - #include "gamestatus.hpp" -@@ -31,6 +30,8 @@ - #include "unit_map.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_config("config"); - #define ERR_CFG LOG_STREAM(err , log_config) - -@@ -112,9 +113,9 @@ - message = foobar - [/line] - */ -- foreach (const config::any_child &h, history.all_children_range()) -+ BOOST_FOREACH(const config::any_child &h, history.all_children_range()) - { -- foreach (const config &l, h.cfg.child_range("line")) { -+ BOOST_FOREACH(const config &l, h.cfg.child_range("line")) { - history_map[h.key].push_back(l["message"]); - } - } -@@ -142,10 +143,10 @@ - */ - config history; - typedef std::pair<std::string, std::vector<std::string> > hack; -- foreach(const hack& history_id, history_map) { -+ BOOST_FOREACH(const hack& history_id, history_map) { - - config history_id_cfg; // [history_id] -- foreach(const std::string& line, history_id.second) { -+ BOOST_FOREACH(const std::string& line, history_id.second) { - config cfg; // [line] - - cfg["message"] = line; -@@ -314,7 +315,7 @@ - std::vector<game_config::server_info> &game_servers = game_config::server_list; - VALIDATE(!game_servers.empty(), _("No server has been defined.")); - pref_servers.insert(pref_servers.begin(), game_servers.begin(), game_servers.end()); -- foreach (const config &server, get_prefs()->child_range("server")) { -+ BOOST_FOREACH(const config &server, get_prefs()->child_range("server")) { - game_config::server_info sinf; - sinf.name = server["name"].str(); - sinf.address = server["address"].str(); -@@ -945,8 +946,8 @@ - } - - void encounter_recallable_units(std::vector<team>& teams){ -- foreach(const team& t, teams) { -- foreach(const unit& u, t.recall_list()) { -+ BOOST_FOREACH(const team& t, teams) { -+ BOOST_FOREACH(const unit& u, t.recall_list()) { - encountered_units_set.insert(u.type_id()); - } - } -Index: src/map_label.cpp -=================================================================== ---- src/map_label.cpp (revision 54624) -+++ src/map_label.cpp (revision 54625) -@@ -16,12 +16,13 @@ - #include "global.hpp" - - #include "display.hpp" --#include "foreach.hpp" - #include "gamestatus.hpp" - #include "map_label.hpp" - #include "resources.hpp" - #include "formula_string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - //our definition of map labels being obscured is if the tile is obscured, - //or the tile below is obscured. This is because in the case where the tile - //itself is visible, but the tile below is obscured, the bottom half of the -@@ -59,7 +60,7 @@ - { - clear_all(); - -- foreach (const config &i, cfg.child_range("label")) -+ BOOST_FOREACH(const config &i, cfg.child_range("label")) - { - const map_location loc(i, resources::state_of_game); - terrain_label *label = new terrain_label(*this, i); -@@ -222,7 +223,7 @@ - - void map_labels::clear_all() - { -- foreach (team_label_map::value_type &m, labels_) -+ BOOST_FOREACH(team_label_map::value_type &m, labels_) - { - clear_map(m.second, true); - } -@@ -231,9 +232,9 @@ - - void map_labels::recalculate_labels() - { -- foreach (team_label_map::value_type &m, labels_) -+ BOOST_FOREACH(team_label_map::value_type &m, labels_) - { -- foreach (label_map::value_type &l, m.second) -+ BOOST_FOREACH(label_map::value_type &l, m.second) - { - l.second->recalculate(); - } -@@ -249,9 +250,9 @@ - - void map_labels::recalculate_shroud() - { -- foreach (team_label_map::value_type &m, labels_) -+ BOOST_FOREACH(team_label_map::value_type &m, labels_) - { -- foreach (label_map::value_type &l, m.second) -+ BOOST_FOREACH(label_map::value_type &l, m.second) - { - l.second->calculate_shroud(); - } -Index: src/actions.cpp -=================================================================== ---- src/actions.cpp (revision 54624) -+++ src/actions.cpp (revision 54625) -@@ -21,7 +21,6 @@ - #include "actions.hpp" - - #include "attack_prediction.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_events.hpp" - #include "game_preferences.hpp" -@@ -40,6 +39,7 @@ - #include "whiteboard/manager.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_engine("engine"); - #define DBG_NG LOG_STREAM(debug, log_engine) -@@ -206,7 +206,7 @@ - placements.push_back("map"); - placements.push_back("recall"); - -- foreach(std::string place, placements) { -+ BOOST_FOREACH(std::string place, placements) { - map_location loc; - bool pass((place == "leader_passable") || (place == "map_passable")); - -@@ -417,7 +417,7 @@ - leader_in_place= true; - else continue; - -- foreach (const unit& recall_unit, recall_list) -+ BOOST_FOREACH(const unit& recall_unit, recall_list) - { - //Only units which match the leaders recall filter are valid. - scoped_recall_unit this_unit("this_unit", t.save_id(), &recall_unit - &recall_list[0]); -@@ -435,7 +435,7 @@ - } - - if (!(recall_loc_is_castle && leader_in_place)) { -- foreach (const unit &recall, recall_list) -+ BOOST_FOREACH(const unit &recall, recall_list) - { - result.push_back(&recall); - } -@@ -546,7 +546,7 @@ - - bool can_recruit_unit = is_on_team_list; - if (!can_recruit_unit) { -- foreach (const std::string &recruitable, leader->recruits()) { -+ BOOST_FOREACH(const std::string &recruitable, leader->recruits()) { - if (recruitable == unit_type) { - can_recruit_unit = true; - break; -@@ -1925,7 +1925,7 @@ - // Simple algorithm: no maximum number of patients per healer. - void reset_resting(unit_map& units, int side) - { -- foreach (unit &u, units) { -+ BOOST_FOREACH(unit &u, units) { - if (u.side() == side) - u.set_resting(true); - } -@@ -1946,7 +1946,7 @@ - std::list<unit_healing_struct> l; - - // We look for all allied units, then we see if our healer is near them. -- foreach (unit &u, units) { -+ BOOST_FOREACH(unit &u, units) { - - if (u.get_state("unhealable") || u.incapacitated()) - continue; -@@ -2307,7 +2307,7 @@ - } - - pathfind::paths p(*resources::game_map, *resources::units, loc, *resources::teams, true, false, tm, 0, false, true); -- foreach (const pathfind::paths::step &dest, p.destinations) { -+ BOOST_FOREACH(const pathfind::paths::step &dest, p.destinations) { - clear_shroud_loc(tm, dest.curr, &cleared_locations); - } - -@@ -2350,7 +2350,7 @@ - - tm.refog(); - -- foreach (unit &u, *resources::units) -+ BOOST_FOREACH(unit &u, *resources::units) - { - if (u.side() == side) { - const unit_movement_resetter move_resetter(u); -@@ -2372,7 +2372,7 @@ - - bool result = false; - -- foreach (unit &u, *resources::units) -+ BOOST_FOREACH(unit &u, *resources::units) - { - if (u.side() == side) { - const unit_movement_resetter move_resetter(u); -@@ -2435,7 +2435,7 @@ - - std::set<map_location> known_units; - if(check_shroud) { -- foreach (const unit &u, units) { -+ BOOST_FOREACH(const unit &u, units) { - if (!tm->fogged(u.get_location())) { - known_units.insert(u.get_location()); - tm->see(u.side() - 1); -@@ -2860,7 +2860,7 @@ - */ - - std::set<map_location> known_units; -- foreach (const unit &u, units) { -+ BOOST_FOREACH(const unit &u, units) { - if (!tm.fogged(u.get_location())) { - known_units.insert(u.get_location()); - } -Index: src/font.cpp -=================================================================== ---- src/font.cpp (revision 54624) -+++ src/font.cpp (revision 54625) -@@ -21,7 +21,6 @@ - #include "config.hpp" - #include "filesystem.hpp" - #include "font.hpp" --#include "foreach.hpp" - #include "game_config.hpp" - #include "log.hpp" - #include "marked-up_text.hpp" -@@ -32,6 +31,8 @@ - #include "serialization/preprocessor.hpp" - #include "serialization/string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - #include <list> - #include <set> - #include <stack> -@@ -355,10 +356,10 @@ - #endif - - #if CAIRO_HAS_WIN32_FONT -- foreach(const std::string& path, get_binary_paths("fonts")) { -+ BOOST_FOREACH(const std::string& path, get_binary_paths("fonts")) { - std::vector<std::string> files; - get_files_in_dir(path, &files, NULL, ENTIRE_FILE_PATH); -- foreach(const std::string& file, files) -+ BOOST_FOREACH(const std::string& file, files) - if(file.substr(file.length() - 4) == ".ttf" || file.substr(file.length() - 4) == ".ttc") - AddFontResource(file.c_str()); - } -@@ -372,10 +373,10 @@ - #endif - - #if CAIRO_HAS_WIN32_FONT -- foreach(const std::string& path, get_binary_paths("fonts")) { -+ BOOST_FOREACH(const std::string& path, get_binary_paths("fonts")) { - std::vector<std::string> files; - get_files_in_dir(path, &files, NULL, ENTIRE_FILE_PATH); -- foreach(const std::string& file, files) -+ BOOST_FOREACH(const std::string& file, files) - if(file.substr(file.length() - 4) == ".ttf" || file.substr(file.length() - 4) == ".ttc") - RemoveFontResource(file.c_str()); - } -@@ -425,7 +426,7 @@ - const subset_id subset = font_names.size(); - font_names.push_back(itor->name); - -- foreach (const subset_descriptor::range &cp_range, itor->present_codepoints) { -+ BOOST_FOREACH(const subset_descriptor::range &cp_range, itor->present_codepoints) { - char_blocks.insert(cp_range.first, cp_range.second, subset); - } - } -@@ -582,7 +583,7 @@ - w_ = 0; - h_ = 0; - -- foreach (text_chunk const &chunk, chunks_) -+ BOOST_FOREACH(text_chunk const &chunk, chunks_) - { - TTF_Font* ttfont = get_font(font_id(chunk.subset, font_size_)); - if(ttfont == NULL) -@@ -628,7 +629,7 @@ - if(width() > max_text_line_width) - return surfs_; - -- foreach (text_chunk const &chunk, chunks_) -+ BOOST_FOREACH(text_chunk const &chunk, chunks_) - { - TTF_Font* ttfont = get_font(font_id(chunk.subset, font_size_)); - if (ttfont == NULL) -@@ -1261,7 +1262,7 @@ - return false; - - std::set<std::string> known_fonts; -- foreach (const config &font, fonts_config.child_range("font")) { -+ BOOST_FOREACH(const config &font, fonts_config.child_range("font")) { - known_fonts.insert(font["name"]); - } - -Index: src/unit_animation.cpp -=================================================================== ---- src/unit_animation.cpp (revision 54624) -+++ src/unit_animation.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "unit_animation.hpp" - --#include "foreach.hpp" - #include "game_display.hpp" - #include "halo.hpp" - #include "map.hpp" -@@ -26,6 +25,8 @@ - #include "resources.hpp" - #include "play_controller.hpp" - -+#include <boost/foreach.hpp> -+ - #include <algorithm> - - struct tag_name_manager { -@@ -78,7 +79,7 @@ - config merge() const - { - config result = attributes; -- foreach (const config::all_children_iterator &i, children) -+ BOOST_FOREACH(const config::all_children_iterator &i, children) - result.add_child(i->key, i->cfg); - return result; - } -@@ -99,7 +100,7 @@ - animation_cursor(const config &cfg, animation_cursor *p): - itors(cfg.all_children_range()), branches(p->branches), parent(p) - { -- foreach (animation_branch &ab, branches) -+ BOOST_FOREACH(animation_branch &ab, branches) - ab.attributes.merge_attributes(cfg); - } - }; -@@ -122,7 +123,7 @@ - if (ac.itors.first->key != "if") - { - // Append current config object to all the branches in scope. -- foreach (animation_branch &ab, ac.branches) { -+ BOOST_FOREACH(animation_branch &ab, ac.branches) { - ab.children.push_back(ac.itors.first); - } - ++ac.itors.first; -@@ -154,7 +155,7 @@ - static animation_branches prepare_animation(const config &cfg, const std::string &animation_tag) - { - animation_branches expanded_animations; -- foreach (const config &anim, cfg.child_range(animation_tag)) { -+ BOOST_FOREACH(const config &anim, cfg.child_range(animation_tag)) { - prepare_single_animation(anim, expanded_animations); - } - return expanded_animations; -@@ -207,7 +208,7 @@ - overlaped_hex_() - { - // if(!cfg["debug"].empty()) printf("DEBUG WML: FINAL\n%s\n\n",cfg.debug().c_str()); -- foreach (const config::any_child &fr, cfg.all_children_range()) -+ BOOST_FOREACH(const config::any_child &fr, cfg.all_children_range()) - { - if (fr.key == frame_string) continue; - if (fr.key.find("_frame", fr.key.size() - 6) == std::string::npos) continue; -@@ -221,11 +222,11 @@ - const map_location::DIRECTION d = map_location::parse_direction(*i); - directions_.push_back(d); - } -- foreach (const config &filter, cfg.child_range("filter")) { -+ BOOST_FOREACH(const config &filter, cfg.child_range("filter")) { - unit_filter_.push_back(filter); - } - -- foreach (const config &filter, cfg.child_range("filter_second")) { -+ BOOST_FOREACH(const config &filter, cfg.child_range("filter_second")) { - secondary_unit_filter_.push_back(filter); - } - -@@ -253,10 +254,10 @@ - for(value2=value2_str.begin() ; value2 != value2_str.end() ; ++value2) { - value2_.push_back(atoi(value2->c_str())); - } -- foreach (const config &filter, cfg.child_range("filter_attack")) { -+ BOOST_FOREACH(const config &filter, cfg.child_range("filter_attack")) { - primary_attack_filter_.push_back(filter); - } -- foreach (const config &filter, cfg.child_range("filter_second_attack")) { -+ BOOST_FOREACH(const config &filter, cfg.child_range("filter_second_attack")) { - secondary_attack_filter_.push_back(filter); - } - play_offscreen_ = cfg["offscreen"].to_bool(true); -@@ -487,7 +488,7 @@ - display::tdrawing_layer layer = display::LAYER_UNIT_DEFAULT, - bool offscreen = true) - { -- foreach (const animation_branch &ab, prepare_animation(cfg, tag_name)) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, tag_name)) - { - config anim = ab.merge(); - anim["apply_to"] = apply_to; -@@ -503,7 +504,7 @@ - - void unit_animation::add_anims( std::vector<unit_animation> & animations, const config & cfg) - { -- foreach (const animation_branch &ab, prepare_animation(cfg, "animation")) { -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "animation")) { - animations.push_back(unit_animation(ab.merge())); - } - -@@ -519,7 +520,7 @@ - add_simple_anim(animations, cfg, "levelin_anim", "levelin"); - add_simple_anim(animations, cfg, "levelout_anim", "levelout"); - -- foreach (const animation_branch &ab, prepare_animation(cfg, "standing_anim")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "standing_anim")) - { - config anim = ab.merge(); - anim["apply_to"] = "default"; -@@ -528,7 +529,7 @@ - if (anim["offscreen"].empty()) anim["offscreen"] = false; - animations.push_back(unit_animation(anim)); - } -- foreach (const animation_branch &ab, prepare_animation(cfg, "standing_anim")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "standing_anim")) - { - config anim = ab.merge(); - anim["apply_to"] = "standing"; -@@ -537,7 +538,7 @@ - if (anim["offscreen"].empty()) anim["offscreen"] = false; - animations.push_back(unit_animation(anim)); - } -- foreach (const animation_branch &ab, prepare_animation(cfg, "healing_anim")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "healing_anim")) - { - config anim = ab.merge(); - anim["apply_to"] = "healing"; -@@ -546,7 +547,7 @@ - animations.push_back(unit_animation(anim)); - } - -- foreach (const animation_branch &ab, prepare_animation(cfg, "healed_anim")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "healed_anim")) - { - config anim = ab.merge(); - anim["apply_to"] = "healed"; -@@ -558,7 +559,7 @@ - animations.back().sub_anims_["_healed_sound"].add_frame(1,frame_builder().sound("heal.wav"),true); - } - -- foreach (const animation_branch &ab, prepare_animation(cfg, "poison_anim")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "poison_anim")) - { - config anim = ab.merge(); - anim["apply_to"] ="poisoned"; -@@ -572,7 +573,7 @@ - - add_simple_anim(animations, cfg, "pre_movement_anim", "pre_movement", display::LAYER_UNIT_MOVE_DEFAULT); - -- foreach (const animation_branch &ab, prepare_animation(cfg, "movement_anim")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "movement_anim")) - { - config anim = ab.merge(); - if (anim["offset"].empty()) { -@@ -585,7 +586,7 @@ - - add_simple_anim(animations, cfg, "post_movement_anim", "post_movement", display::LAYER_UNIT_MOVE_DEFAULT); - -- foreach (const animation_branch &ab, prepare_animation(cfg, "defend")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "defend")) - { - config anim = ab.merge(); - anim["apply_to"] = "defend"; -@@ -607,7 +608,7 @@ - else - { - std::vector<std::string> v = utils::split(anim["hits"]); -- foreach (const std::string &hit_type, v) -+ BOOST_FOREACH(const std::string &hit_type, v) - { - config tmp = anim; - tmp["hits"] = hit_type; -@@ -625,7 +626,7 @@ - add_simple_anim(animations, cfg, "draw_weapon_anim", "draw_wepaon", display::LAYER_UNIT_MOVE_DEFAULT); - add_simple_anim(animations, cfg, "sheath_weapon_anim", "sheath_wepaon", display::LAYER_UNIT_MOVE_DEFAULT); - -- foreach (const animation_branch &ab, prepare_animation(cfg, "attack_anim")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "attack_anim")) - { - config anim = ab.merge(); - anim["apply_to"] = "attack"; -@@ -646,7 +647,7 @@ - animations.push_back(unit_animation(anim)); - } - -- foreach (const animation_branch &ab, prepare_animation(cfg, "death")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "death")) - { - config anim = ab.merge(); - anim["apply_to"] = "death"; -@@ -663,7 +664,7 @@ - - add_simple_anim(animations, cfg, "victory_anim", "victory"); - -- foreach (const animation_branch &ab, prepare_animation(cfg, "extra_anim")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "extra_anim")) - { - config anim = ab.merge(); - anim["apply_to"] = anim["flag"]; -@@ -671,7 +672,7 @@ - animations.push_back(unit_animation(anim)); - } - -- foreach (const animation_branch &ab, prepare_animation(cfg, "teleport_anim")) -+ BOOST_FOREACH(const animation_branch &ab, prepare_animation(cfg, "teleport_anim")) - { - config anim = ab.merge(); - if (anim["layer"].empty()) anim["layer"] = default_layer; -@@ -742,14 +743,14 @@ - config::const_child_itors range = cfg.child_range(frame_string+"frame"); - starting_frame_time_=INT_MAX; - if(cfg[frame_string+"start_time"].empty() &&range.first != range.second) { -- foreach (const config &frame, range) { -+ BOOST_FOREACH(const config &frame, range) { - starting_frame_time_ = std::min(starting_frame_time_, frame["begin"].to_int()); - } - } else { - starting_frame_time_ = cfg[frame_string+"start_time"]; - } - -- foreach (const config &frame, range) -+ BOOST_FOREACH(const config &frame, range) - { - unit_frame tmp_frame(frame); - add_frame(tmp_frame.duration(),tmp_frame,!tmp_frame.does_not_change()); -Index: src/storyscreen/render.cpp -=================================================================== ---- src/storyscreen/render.cpp (revision 54624) -+++ src/storyscreen/render.cpp (revision 54625) -@@ -22,7 +22,6 @@ - - #include "global.hpp" - #include "asserts.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "storyscreen/part.hpp" - #include "storyscreen/render.hpp" -@@ -34,6 +33,8 @@ - #include "text.hpp" - #include "video.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define ERR_NG LOG_STREAM(err, log_engine) - #define WARN_NG LOG_STREAM(warn, log_engine) -@@ -167,7 +168,7 @@ - void part_ui::prepare_floating_images() - { - // Build floating image surfaces -- foreach(const floating_image& fi, p_.get_floating_images()) { -+ BOOST_FOREACH(const floating_image& fi, p_.get_floating_images()) { - imgs_.push_back( fi.get_render_input(scale_factor_, base_rect_) ); - } - } -@@ -190,7 +191,7 @@ - last_key_ = true; - - size_t fi_n = 0; -- foreach(floating_image::render_input& ri, imgs_) { -+ BOOST_FOREACH(floating_image::render_input& ri, imgs_) { - const floating_image& fi = p_.get_floating_images()[fi_n]; - - if(!ri.image.null()) { -Index: src/storyscreen/interface.cpp -=================================================================== ---- src/storyscreen/interface.cpp (revision 54624) -+++ src/storyscreen/interface.cpp (revision 54625) -@@ -19,7 +19,6 @@ - */ - - #include "global.hpp" --#include "foreach.hpp" - #include "variable.hpp" - - #include "storyscreen/interface.hpp" -Index: src/storyscreen/controller.cpp -=================================================================== ---- src/storyscreen/controller.cpp (revision 54624) -+++ src/storyscreen/controller.cpp (revision 54625) -@@ -25,7 +25,6 @@ - #include "storyscreen/render.hpp" - - #include "asserts.hpp" --#include "foreach.hpp" - #include "variable.hpp" - - #include "display.hpp" -@@ -37,6 +36,8 @@ - #include "resources.hpp" - #include "widgets/button.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define ERR_NG LOG_STREAM(err, log_engine) - #define LOG_NG LOG_STREAM(info, log_engine) -@@ -138,7 +139,7 @@ - // caching the scaled backgrounds can take over a decent amount of memory. - #ifndef LOW_MEM - std::vector< render_pointer_type > uis_; -- foreach(part_pointer_type p, parts_) { -+ BOOST_FOREACH(part_pointer_type p, parts_) { - ASSERT_LOG( p != NULL, "Ouch: hit NULL storyscreen part in collection" ); - render_pointer_type const rpt(new part_ui(*p, disp_, next_button, back_button, play_button)); - uis_.push_back(rpt); -Index: src/storyscreen/part.cpp -=================================================================== ---- src/storyscreen/part.cpp (revision 54624) -+++ src/storyscreen/part.cpp (revision 54625) -@@ -20,7 +20,6 @@ - - #include "global.hpp" - #include "asserts.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "resources.hpp" - #include "storyscreen/part.hpp" -Index: src/game.cpp -=================================================================== ---- src/game.cpp (revision 54624) -+++ src/game.cpp (revision 54625) -@@ -40,6 +40,7 @@ - #include <fstream> - #include <libintl.h> - -+#include <boost/foreach.hpp> - #include <boost/iostreams/copy.hpp> - #include <boost/iostreams/filter/gzip.hpp> - -@@ -218,7 +219,7 @@ - int read = 0; - - // use static preproc_define::read_pair(config) to make a object -- foreach ( const config::any_child &value, cfg.all_children_range() ) { -+ BOOST_FOREACH( const config::any_child &value, cfg.all_children_range() ) { - const preproc_map::value_type def = preproc_define::read_pair( value.cfg ); - input_macros[def.first] = def.second; - ++read; -@@ -245,7 +246,7 @@ - if ( cmdline_opts.preprocess_defines ) { - - // add the specified defines -- foreach ( const std::string &define, *cmdline_opts.preprocess_defines ) { -+ BOOST_FOREACH( const std::string &define, *cmdline_opts.preprocess_defines ) { - if (define.empty()){ - std::cerr << "empty define supplied\n"; - continue; -@@ -452,7 +453,7 @@ - const config &cfg = game->game_config().child("titlescreen_music"); - if (cfg) { - sound::play_music_repeatedly(game_config::title_music); -- foreach (const config &i, cfg.child_range("music")) { -+ BOOST_FOREACH(const config &i, cfg.child_range("music")) { - sound::play_music_config(i); - } - sound::commit_music_changes(); -Index: src/playsingle_controller.cpp -=================================================================== ---- src/playsingle_controller.cpp (revision 54624) -+++ src/playsingle_controller.cpp (revision 54625) -@@ -27,7 +27,6 @@ - #include "ai/game_info.hpp" - #include "ai/testing.hpp" - #include "dialogs.hpp" --#include "foreach.hpp" - #include "game_end_exceptions.hpp" - #include "game_events.hpp" - #include "game_preferences.hpp" -@@ -48,6 +47,8 @@ - #include "whiteboard/manager.hpp" - #include "util.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define ERR_NG LOG_STREAM(err, log_engine) - #define LOG_NG LOG_STREAM(info, log_engine) -@@ -324,7 +325,7 @@ - LOG_NG << "in playsingle_controller::play_scenario()...\n"; - - // Start music. -- foreach (const config &m, level_.child_range("music")) { -+ BOOST_FOREACH(const config &m, level_.child_range("music")) { - sound::play_music_config(m); - } - sound::commit_music_changes(); -@@ -336,7 +337,7 @@ - - // Read sound sources - assert(soundsources_manager_ != NULL); -- foreach (const config &s, level_.child_range("sound_source")) { -+ BOOST_FOREACH(const config &s, level_.child_range("sound_source")) { - soundsource::sourcespec spec(s); - soundsources_manager_->add(spec); - } -@@ -906,14 +907,14 @@ - new_side["previous_recruits"] = can_recruit_str; - LOG_NG << "stored side in snapshot:\n" << new_side["save_id"] << std::endl; - //add the units of the recall list -- foreach(const unit& u, i->recall_list()) { -+ BOOST_FOREACH(const unit& u, i->recall_list()) { - config& new_unit = new_side.add_child("unit"); - u.write(new_unit); - } - } - } - //add any players from starting_pos that do not have a team in the current scenario -- foreach (const config &player_cfg, gamestate_.starting_pos.child_range("player")) { -+ BOOST_FOREACH(const config &player_cfg, gamestate_.starting_pos.child_range("player")) { - if (side_ids.count(player_cfg["save_id"]) == 0) { - LOG_NG << "stored inactive side in snapshot:\n" << player_cfg["save_id"] << std::endl; - gamestate_.snapshot.add_child("side", player_cfg); -@@ -938,7 +939,7 @@ - } - - int persistent_teams = 0; -- foreach (const team &t, teams_) { -+ BOOST_FOREACH(const team &t, teams_) { - if (t.persistent()) ++persistent_teams; - } - -@@ -953,7 +954,7 @@ - int turns_left = std::max<int>(0, tod_manager_.number_of_turns() - turn()); - int finishing_bonus = (end_level.gold_bonus && turns_left > -1) ? - finishing_bonus_per_turn * turns_left : 0; -- foreach (const team &t, teams_) -+ BOOST_FOREACH(const team &t, teams_) - { - if (!t.persistent()) continue; - int carryover_gold = div100rounded((t.gold() + finishing_bonus) * end_level.carryover_percentage); -Index: src/controller_base.cpp -=================================================================== ---- src/controller_base.cpp (revision 54624) -+++ src/controller_base.cpp (revision 54625) -@@ -18,11 +18,12 @@ - - #include "dialogs.hpp" - #include "display.hpp" --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "log.hpp" - #include "mouse_handler_base.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_display("display"); - #define ERR_DP LOG_STREAM(err, log_display) - -@@ -144,7 +145,7 @@ - int dx = 0, dy = 0; - int scroll_threshold = (preferences::mouse_scroll_enabled()) - ? preferences::mouse_scroll_threshold() : 0; -- foreach (const theme::menu& m, get_display().get_theme().menus()) { -+ BOOST_FOREACH(const theme::menu& m, get_display().get_theme().menus()) { - if (point_in_rect(mousex, mousey, m.get_location())) { - scroll_threshold = 0; - } -Index: src/gamestatus.cpp -=================================================================== ---- src/gamestatus.cpp (revision 54624) -+++ src/gamestatus.cpp (revision 54625) -@@ -24,7 +24,6 @@ - #include "gamestatus.hpp" - - #include "actions.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "log.hpp" - #include "game_preferences.hpp" -@@ -42,6 +41,7 @@ - #include "whiteboard/side_actions.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #ifndef _MSC_VER - #include <sys/time.h> -@@ -178,9 +178,9 @@ - tags.push_back("side"); - tags.push_back("player"); //merge [player] tags for backwards compatibility of saves - -- foreach (const std::string& side_tag, tags) -+ BOOST_FOREACH(const std::string& side_tag, tags) - { -- foreach (config &carryover_side, source->child_range(side_tag)) -+ BOOST_FOREACH(config &carryover_side, source->child_range(side_tag)) - { - config *scenario_side = NULL; - -@@ -226,13 +226,13 @@ - (*scenario_side)["color"] = carryover_side["color"]; - - //add recallable units -- foreach (const config &u, carryover_side.child_range("unit")) { -+ BOOST_FOREACH(const config &u, carryover_side.child_range("unit")) { - scenario_side->add_child("unit", u); - } - } - } - } else { -- foreach(const config &snapshot_side, source->child_range("side")) { -+ BOOST_FOREACH(const config &snapshot_side, source->child_range("side")) { - //take all side tags and add them as players (assuming they only contain carryover information) - cfg.add_child("player", snapshot_side); - } -@@ -306,7 +306,7 @@ - //See also playcampaign::play_game, where after finishing the scenario the replay - //will be saved. - if(!starting_pos.empty()) { -- foreach (const config &p, cfg.child_range("player")) { -+ BOOST_FOREACH(const config &p, cfg.child_range("player")) { - config& cfg_player = starting_pos.add_child("player"); - cfg_player.merge_with(p); - } -@@ -400,7 +400,7 @@ - std::string leader; - std::string leader_image; - -- //foreach (const config &p, cfg_save.child_range("player")) -+ //BOOST_FOREACH(const config &p, cfg_save.child_range("player")) - //{ - // if (utils::string_bool(p["canrecruit"], false)) { - // leader = p["save_id"]; -@@ -413,7 +413,7 @@ - //{ - if (const config &snapshot = *(has_snapshot ? &cfg_snapshot : &cfg_replay_start)) - { -- foreach (const config &side, snapshot.child_range("side")) -+ BOOST_FOREACH(const config &side, snapshot.child_range("side")) - { - if (side["controller"] != "human") { - continue; -@@ -430,7 +430,7 @@ - break; - } - -- foreach (const config &u, side.child_range("unit")) -+ BOOST_FOREACH(const config &u, side.child_range("unit")) - { - if (u["canrecruit"].to_bool()) { - leader = u["id"].str(); -@@ -794,7 +794,7 @@ - // can be recruited for the player, add them. - if (!player_cfg_) return; - if (const config::attribute_value *v = player_cfg_->get("previous_recruits")) { -- foreach (const std::string &rec, utils::split(*v)) { -+ BOOST_FOREACH(const std::string &rec, utils::split(*v)) { - DBG_NG_TC << "adding previous recruit: " << rec << '\n'; - t_->add_recruit(rec); - } -@@ -857,7 +857,7 @@ - if (!side_cfg_["no_leader"].to_bool() && side_cfg_["controller"] != "null") { - handle_leader(side_cfg_); - } -- foreach (const config &l, side_cfg_.child_range("leader")) { -+ BOOST_FOREACH(const config &l, side_cfg_.child_range("leader")) { - handle_leader(l); - } - } -@@ -871,13 +871,13 @@ - //only relevant in start-of-scenario saves, that's why !shapshot - //units that are in '[scenario][side]' are 'first' - //for create-or-recall semantics to work: for each unit with non-empty id, unconditionally put OTHER, later, units with same id directly to recall list, not including them in unit_configs_ -- foreach(const config &u, (*player_cfg_).child_range("unit")) { -+ BOOST_FOREACH(const config &u, (*player_cfg_).child_range("unit")) { - handle_unit(u,"player_cfg"); - } - - } else { - //units in [side] -- foreach (const config &su, side_cfg_.child_range("unit")) { -+ BOOST_FOREACH(const config &su, side_cfg_.child_range("unit")) { - handle_unit(su, "side_cfg"); - } - } -@@ -902,7 +902,7 @@ - "allow_changes", "faction_name", "user_description", "faction" }; - - log_step("place units"); -- foreach (const config *u, unit_configs_) { -+ BOOST_FOREACH(const config *u, unit_configs_) { - unit_creator uc(*t_,map_.starting_position(side_)); - uc - .allow_add_to_recall(true) -@@ -913,7 +913,7 @@ - .allow_show(false); - - config cfg = *u; -- foreach (const char *attr, side_attrs) { -+ BOOST_FOREACH(const char *attr, side_attrs) { - cfg.remove_attribute(attr); - } - uc.add_unit(cfg); -@@ -953,7 +953,7 @@ - void game_state::set_menu_items(const config::const_child_itors &menu_items) - { - clear_wmi(wml_menu_items); -- foreach (const config &item, menu_items) -+ BOOST_FOREACH(const config &item, menu_items) - { - std::string id = item["id"]; - wml_menu_item*& mref = wml_menu_items[id]; -Index: src/log.cpp -=================================================================== ---- src/log.cpp (revision 54624) -+++ src/log.cpp (revision 54625) -@@ -25,8 +25,9 @@ - #include "SDL.h" - - #include "log.hpp" --#include "foreach.hpp" - -+#include <boost/foreach.hpp> -+ - #include <map> - #include <sstream> - #include <ctime> -@@ -88,11 +89,11 @@ - { - std::string::size_type s = name.size(); - if (name == "all") { -- foreach (logd &l, *domains) { -+ BOOST_FOREACH(logd &l, *domains) { - l.second = severity; - } - } else if (s > 2 && name.compare(s - 2, 2, "/*") == 0) { -- foreach (logd &l, *domains) { -+ BOOST_FOREACH(logd &l, *domains) { - if (l.first.compare(0, s - 1, name, 0, s - 1) == 0) - l.second = severity; - } -@@ -108,7 +109,7 @@ - std::string list_logdomains(const std::string& filter) - { - std::ostringstream res; -- foreach (logd &l, *domains) { -+ BOOST_FOREACH(logd &l, *domains) { - if(l.first.find(filter) != std::string::npos) - res << l.first << "\n"; - } -Index: src/replay_controller.cpp -=================================================================== ---- src/replay_controller.cpp (revision 54624) -+++ src/replay_controller.cpp (revision 54625) -@@ -16,7 +16,6 @@ - - #include "global.hpp" - --#include "foreach.hpp" - #include "game_end_exceptions.hpp" - #include "game_events.hpp" - #include "gettext.hpp" -@@ -27,6 +26,8 @@ - #include "resources.hpp" - #include "savegame.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define DBG_NG LOG_STREAM(debug, log_engine) - -@@ -417,7 +418,7 @@ - finish_side_turn(); - - // This is necessary for replays in order to show possible movements. -- foreach (unit &u, units_) { -+ BOOST_FOREACH(unit &u, units_) { - if (u.side() != player_number_) { - u.new_turn(); - } -Index: src/multiplayer_ui.cpp -=================================================================== ---- src/multiplayer_ui.cpp (revision 54624) -+++ src/multiplayer_ui.cpp (revision 54625) -@@ -16,7 +16,6 @@ - #include "global.hpp" - - #include "construct_dialog.hpp" --#include "foreach.hpp" - #include "gamestatus.hpp" - #include "game_display.hpp" - #include "game_preferences.hpp" -@@ -33,6 +32,8 @@ - #include "wml_separators.hpp" - #include "formula_string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define LOG_NG LOG_STREAM(info, log_engine) - #define ERR_NG LOG_STREAM(err, log_engine) -@@ -163,9 +164,9 @@ - state.starting_pos.child_range("side"); - config::const_child_itors level_sides = level.child_range("side"); - -- foreach (config &side, saved_sides) -+ BOOST_FOREACH(config &side, saved_sides) - { -- foreach (const config &lside, level_sides) -+ BOOST_FOREACH(const config &lside, level_sides) - { - if (side["side"] == lside["side"] && - (side["current_player"] != lside["current_player"] || -@@ -599,7 +600,7 @@ - if (const config &ms = c.child("members")) { - std::stringstream ss; - ss << "Room " << c["room"].str() << " members: "; -- foreach (const config& m, ms.child_range("member")) { -+ BOOST_FOREACH(const config& m, ms.child_range("member")) { - ss << m["name"] << " "; - } - chat_.add_message(time(NULL), "server", ss.str()); -@@ -608,7 +609,7 @@ - if (const config &rs = c.child("rooms")) { - std::stringstream ss; - ss << "Rooms: "; -- foreach (const config& r, rs.child_range("room")) { -+ BOOST_FOREACH(const config& r, rs.child_range("room")) { - ss << r["name"].str() << "(" << r["size"].str() << ") "; - } - chat_.add_message(time(NULL), "server", ss.str()); -@@ -706,7 +707,7 @@ - { - std::list<user_info> u_list; - -- foreach (const config &user, gamelist_.child_range("user")) -+ BOOST_FOREACH(const config &user, gamelist_.child_range("user")) - { - user_info u_elem; - u_elem.name = user["name"].str(); -@@ -848,12 +849,12 @@ - } - - int res = -1, index = 0, best_score = 0; -- foreach (const config *faction, fl) -+ BOOST_FOREACH(const config *faction, fl) - { - int faction_score = 0; - std::vector<std::string> recruit = utils::split((*faction)[search_field]); -- foreach (const std::string &search, find) { -- foreach (const std::string &r, recruit) { -+ BOOST_FOREACH(const std::string &search, find) { -+ BOOST_FOREACH(const std::string &r, recruit) { - if (r == search) { - ++faction_score; - break; -Index: src/display.cpp -=================================================================== ---- src/display.cpp (revision 54624) -+++ src/display.cpp (revision 54625) -@@ -21,7 +21,6 @@ - #include "builder.hpp" - #include "cursor.hpp" - #include "display.hpp" --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "gettext.hpp" - #include "halo.hpp" -@@ -41,6 +40,8 @@ - - #include "SDL_image.h" - -+#include <boost/foreach.hpp> -+ - #ifdef __SUNPRO_CC - // GCC doesn't have hypot in cmath so include it for Sun Studio - #include <math.h> -@@ -629,7 +630,7 @@ - // now get the surfaces - std::vector<surface> res; - -- foreach(std::string& name, names) { -+ BOOST_FOREACH(std::string& name, names) { - const surface surf(image::get_image(name, image_type)); - if (surf) - res.push_back(surf); -@@ -828,8 +829,8 @@ - * layergroup > location > layer > 'tblit' > surface - */ - -- foreach(const tblit &blit, drawing_buffer_) { -- foreach(const surface& surf, blit.surf()) { -+ BOOST_FOREACH(const tblit &blit, drawing_buffer_) { -+ BOOST_FOREACH(const surface& surf, blit.surf()) { - // Note that dstrect can be changed by sdl_blit - // and so a new instance should be initialized - // to pass to each call to sdl_blit. -@@ -1903,7 +1904,7 @@ - int ticks3 = SDL_GetTicks(); - LOG_DP << "invalidate and draw: " << (ticks3 - ticks2) << " and " << (ticks2 - ticks1) << "\n"; - -- foreach (boost::function<void(display&)> f, redraw_observers_) { -+ BOOST_FOREACH(boost::function<void(display&)> f, redraw_observers_) { - f(*this); - } - -@@ -1992,7 +1993,7 @@ - SDL_Rect clip_rect = get_clip_rect(); - surface screen = get_screen_surface(); - clip_rect_setter set_clip_rect(screen, &clip_rect); -- foreach (const map_location& loc, invalidated_) { -+ BOOST_FOREACH(const map_location& loc, invalidated_) { - int xpos = get_location_x(loc); - int ypos = get_location_y(loc); - -@@ -2058,7 +2059,7 @@ - // Paint arrows - arrows_map_t::const_iterator arrows_in_hex = arrows_map_.find(loc); - if(arrows_in_hex != arrows_map_.end()) { -- foreach(arrow* const a, arrows_in_hex->second) { -+ BOOST_FOREACH(arrow* const a, arrows_in_hex->second) { - a->draw_hex(loc); - } - } -@@ -2388,7 +2389,7 @@ - if(invalidateAll_) - return false; - bool ret = false; -- foreach (const map_location& loc, locs) { -+ BOOST_FOREACH(const map_location& loc, locs) { - #ifdef _OPENMP - #pragma omp critical(invalidated_) - #endif //_OPENMP -@@ -2438,7 +2439,7 @@ - return false; - - bool result = false; -- foreach (const map_location &loc, hexes_under_rect(rect)) { -+ BOOST_FOREACH(const map_location &loc, hexes_under_rect(rect)) { - result |= invalidate(loc); - } - return result; -@@ -2450,7 +2451,7 @@ - animate_map_ = preferences::animate_map(); - if (!animate_map_) return; - -- foreach (const map_location &loc, get_visible_hexes()) -+ BOOST_FOREACH(const map_location &loc, get_visible_hexes()) - { - if (shrouded(loc)) continue; - if (builder_->update_animation(loc)) { -@@ -2464,7 +2465,7 @@ - void display::add_arrow(arrow& arrow) - { - const arrow_path_t & arrow_path = arrow.get_path(); -- foreach (const map_location& loc, arrow_path) -+ BOOST_FOREACH(const map_location& loc, arrow_path) - { - arrows_map_[loc].push_back(&arrow); - } -@@ -2473,7 +2474,7 @@ - void display::remove_arrow(arrow& arrow) - { - const arrow_path_t & arrow_path = arrow.get_path(); -- foreach (const map_location& loc, arrow_path) -+ BOOST_FOREACH(const map_location& loc, arrow_path) - { - arrows_map_[loc].remove(&arrow); - } -@@ -2482,12 +2483,12 @@ - void display::update_arrow(arrow & arrow) - { - const arrow_path_t & previous_path = arrow.get_previous_path(); -- foreach (const map_location& loc, previous_path) -+ BOOST_FOREACH(const map_location& loc, previous_path) - { - arrows_map_[loc].remove(&arrow); - } - const arrow_path_t & arrow_path = arrow.get_path(); -- foreach (const map_location& loc, arrow_path) -+ BOOST_FOREACH(const map_location& loc, arrow_path) - { - arrows_map_[loc].push_back(&arrow); - } -Index: src/about.cpp -=================================================================== ---- src/about.cpp (revision 54624) -+++ src/about.cpp (revision 54625) -@@ -22,10 +22,11 @@ - - #include "construct_dialog.hpp" - #include "display.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "marked-up_text.hpp" - -+#include <boost/foreach.hpp> -+ - /** - * @namespace about - * Display credits %about all contributors. -@@ -52,7 +53,7 @@ - } - - std::vector<std::string> lines = utils::split(c["text"], '\n'); -- foreach (std::string &line, lines) -+ BOOST_FOREACH(std::string &line, lines) - { - if (line.size() > 1 && line[0] == '+') - line = "+ " + line.substr(1); -@@ -67,7 +68,7 @@ - } - } - -- foreach (const config &entry, c.child_range("entry")) { -+ BOOST_FOREACH(const config &entry, c.child_range("entry")) { - res.push_back("- "+ entry["name"].str()); - } - } -@@ -80,7 +81,7 @@ - config::child_itors about_entries = about_list.child_range("about"); - - if (!campaign.empty()) { -- foreach (const config &about, about_entries) { -+ BOOST_FOREACH(const config &about, about_entries) { - // just finished a particular campaign - if (campaign == about["id"]) { - add_lines(res, about); -@@ -88,7 +89,7 @@ - } - } - -- foreach (const config &about, about_entries) { -+ BOOST_FOREACH(const config &about, about_entries) { - add_lines(res, about); - } - -@@ -101,7 +102,7 @@ - images.clear(); - images_default = ""; - -- foreach (const config &about, cfg.child_range("about")) -+ BOOST_FOREACH(const config &about, cfg.child_range("about")) - { - about_list.add_child("about", about); - const std::string &im = about["images"]; -@@ -114,7 +115,7 @@ - } - } - -- foreach (const config &campaign, cfg.child_range("campaign")) -+ BOOST_FOREACH(const config &campaign, cfg.child_range("campaign")) - { - config::const_child_itors abouts = campaign.child_range("about"); - if (abouts.first == abouts.second) continue; -@@ -126,7 +127,7 @@ - temp["id"] = id; - std::string campaign_images; - -- foreach (const config &about, abouts) -+ BOOST_FOREACH(const config &about, abouts) - { - const std::string &subtitle = about["title"]; - if (!subtitle.empty()) -@@ -139,12 +140,12 @@ - text << '\n'; - } - -- foreach (const std::string &line, utils::split(about["text"], '\n')) -+ BOOST_FOREACH(const std::string &line, utils::split(about["text"], '\n')) - { - text << " " << line << '\n'; - } - -- foreach (const config &entry, about.child_range("entry")) -+ BOOST_FOREACH(const config &entry, about.child_range("entry")) - { - text << " " << entry["name"] << '\n'; - } -Index: src/arrow.cpp -=================================================================== ---- src/arrow.cpp (revision 54624) -+++ src/arrow.cpp (revision 54625) -@@ -20,11 +20,12 @@ - - #include "arrow.hpp" - --#include "foreach.hpp" - #include "game_display.hpp" - #include "log.hpp" - #include "resources.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_arrows("arrows"); - #define ERR_ARR LOG_STREAM(err, log_arrows) - #define WRN_ARR LOG_STREAM(warn, log_arrows) -@@ -293,7 +294,7 @@ - { - if(!SCREEN) return; - -- foreach(map_location const& loc, path) -+ BOOST_FOREACH(map_location const& loc, path) - { - SCREEN->invalidate(loc); - } -Index: src/game_display.cpp -=================================================================== ---- src/game_display.cpp (revision 54624) -+++ src/game_display.cpp (revision 54625) -@@ -34,7 +34,6 @@ - Growl_Delegate growl_obj; - #endif - --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "halo.hpp" - #include "log.hpp" -@@ -47,6 +46,8 @@ - #include "sound.hpp" - #include "whiteboard/manager.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_display("display"); - #define ERR_DP LOG_STREAM(err, log_display) - #define LOG_DP LOG_STREAM(info, log_display) -@@ -297,7 +298,7 @@ - halo::unrender(invalidated_); - display::draw_invalidated(); - -- foreach(unit* temp_unit, fake_units_) { -+ BOOST_FOREACH(unit* temp_unit, fake_units_) { - const map_location& loc = temp_unit->get_location(); - exclusive_unit_draw_requests_t::iterator request = exclusive_unit_draw_requests_.find(loc); - if (invalidated_.find(loc) != invalidated_.end() -@@ -305,7 +306,7 @@ - temp_unit->redraw_unit(); - } - -- foreach (const map_location& loc, invalidated_) { -+ BOOST_FOREACH(const map_location& loc, invalidated_) { - unit_map::iterator u_it = units_.find(loc); - exclusive_unit_draw_requests_t::iterator request = exclusive_unit_draw_requests_.find(loc); - if (u_it != units_.end() -@@ -451,7 +452,7 @@ - - // We display the unit the mouse is over if it is over a unit, - // otherwise we display the unit that is selected. -- foreach (const std::string &name, reports::report_list()) { -+ BOOST_FOREACH(const std::string &name, reports::report_list()) { - draw_report(name); - } - invalidateGameStatus_ = false; -@@ -744,7 +745,7 @@ - void game_display::highlight_another_reach(const pathfind::paths &paths_list) - { - // Fold endpoints of routes into reachability map. -- foreach (const pathfind::paths::step &dest, paths_list.destinations) { -+ BOOST_FOREACH(const pathfind::paths::step &dest, paths_list.destinations) { - reach_map_[dest.curr]++; - } - reach_map_changed_ = true; -@@ -897,17 +898,17 @@ - void game_display::invalidate_animations() - { - display::invalidate_animations(); -- foreach (unit& u, units_) { -+ BOOST_FOREACH(unit& u, units_) { - u.refresh(); - } -- foreach(unit* temp_unit, fake_units_) { -+ BOOST_FOREACH(unit* temp_unit, fake_units_) { - temp_unit->refresh(); - } - std::vector<unit*> unit_list; -- foreach (unit &u, units_) { -+ BOOST_FOREACH(unit &u, units_) { - unit_list.push_back(&u); - } -- foreach (unit *u, fake_units_) { -+ BOOST_FOREACH(unit *u, fake_units_) { - unit_list.push_back(u); - } - bool new_inval; -@@ -1079,7 +1080,7 @@ - { - const team& curr_team = teams_[playing_team()]; - const team& prev_team = teams_[playing_team()-1 < teams_.size() ? playing_team()-1 : teams_.size()-1]; -- foreach (const game_display::overlay_map::value_type i, overlays_) { -+ BOOST_FOREACH(const game_display::overlay_map::value_type i, overlays_) { - const overlay& ov = i.second; - if (!ov.team_name.empty() && - ((ov.team_name.find(curr_team.team_name()) + 1) != 0) != -@@ -1485,7 +1486,7 @@ - } - } - -- foreach (const chat_message &cm, chat_messages_) { -+ BOOST_FOREACH(const chat_message &cm, chat_messages_) { - font::move_floating_label(cm.speaker_handle, 0, - movement); - font::move_floating_label(cm.handle, 0, - movement); - } -Index: src/formula_function.cpp -=================================================================== ---- src/formula_function.cpp (revision 54624) -+++ src/formula_function.cpp (revision 54625) -@@ -16,14 +16,14 @@ - #include "global.hpp" - - --//#include "foreach.hpp" - #include "callable_objects.hpp" --#include "foreach.hpp" - #include "formula_debugger.hpp" - #include "formula_function.hpp" - #include "game_display.hpp" - #include "log.hpp" - -+#include <boost/foreach.hpp> -+ - #ifdef HAVE_VISUAL_LEAK_DETECTOR - #include "vld.h" - #endif -@@ -46,7 +46,7 @@ - s << get_name(); - s << '('; - bool first_arg = true; -- foreach(expression_ptr a , args()) { -+ BOOST_FOREACH(expression_ptr a , args()) { - if (!first_arg) { - s << ','; - } else { -@@ -451,7 +451,7 @@ - - std::string result; - -- foreach(expression_ptr arg, args()) { -+ BOOST_FOREACH(expression_ptr arg, args()) { - result += arg->evaluate(variables, fdb).string_cast(); - } - -Index: src/unit_map.cpp -=================================================================== ---- src/unit_map.cpp (revision 54624) -+++ src/unit_map.cpp (revision 54625) -@@ -17,13 +17,14 @@ - /** @file */ - - #include "unit_id.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "unit.hpp" - - #include <functional> - #include "unit_map.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define ERR_NG LOG_STREAM(err, log_engine) - #define WRN_NG LOG_STREAM(warn, log_engine) -@@ -444,7 +445,7 @@ - { - assert(u); - -- foreach(const unit_pod& item, ilist_) { -+ BOOST_FOREACH(const unit_pod& item, ilist_) { - if(item.unit == u) { - return true; - } -Index: src/pathfind/teleport.cpp -=================================================================== ---- src/pathfind/teleport.cpp (revision 54624) -+++ src/pathfind/teleport.cpp (revision 54625) -@@ -19,7 +19,7 @@ - #include "log.hpp" - #include "resources.hpp" - --#include "foreach.hpp" -+#include <boost/foreach.hpp> - - static lg::log_domain log_engine("engine"); - #define ERR_PF LOG_STREAM(err, log_engine) -@@ -108,16 +108,16 @@ - , targets_() - { - -- foreach(const teleport_group& group, groups) { -+ BOOST_FOREACH(const teleport_group& group, groups) { - - teleport_pair locations; - group.get_teleport_pair(locations, u, ignore_units); - if (!see_all && !group.always_visible() && viewing_team.is_enemy(u.side())) { - teleport_pair filter_locs; -- foreach(const map_location &loc, locations.first) -+ BOOST_FOREACH(const map_location &loc, locations.first) - if(!viewing_team.fogged(loc)) - filter_locs.first.insert(loc); -- foreach(const map_location &loc, locations.second) -+ BOOST_FOREACH(const map_location &loc, locations.second) - if(!viewing_team.fogged(loc)) - filter_locs.second.insert(loc); - locations.first.swap(filter_locs.first); -Index: src/pathfind/astarsearch.cpp -=================================================================== ---- src/pathfind/astarsearch.cpp (revision 54624) -+++ src/pathfind/astarsearch.cpp (revision 54625) -@@ -20,7 +20,6 @@ - #include "map.hpp" - #include "pathfind/pathfind.hpp" - #include "pathfind/teleport.hpp" --#include "foreach.hpp" - - #include <queue> - #include <map> -Index: src/pathfind/pathfind.cpp -=================================================================== ---- src/pathfind/pathfind.cpp (revision 54624) -+++ src/pathfind/pathfind.cpp (revision 54625) -@@ -24,7 +24,6 @@ - #include "pathfind/pathfind.hpp" - #include "pathfind/teleport.hpp" - --#include "foreach.hpp" - #include "game_display.hpp" - #include "gettext.hpp" - #include "log.hpp" -@@ -35,6 +34,8 @@ - #include "unit_map.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - #include <iostream> - #include <vector> - #include <algorithm> -@@ -59,7 +60,7 @@ - std::set<map_location> tiles_checking; - tiles_checking.swap(pending_tiles_to_check); - //Iterate over all the hexes we need to check -- foreach (const map_location &loc, tiles_checking) -+ BOOST_FOREACH(const map_location &loc, tiles_checking) - { - //If this area is not a castle but should, skip it. - if (vacancy == pathfind::VACANT_CASTLE && !map.is_castle(loc)) continue; -@@ -76,7 +77,7 @@ - if (units.find(loc) == units.end() && !pass_check_and_unreachable) return loc; - map_location adjs[6]; - get_adjacent_tiles(loc,adjs); -- foreach (const map_location &loc, adjs) -+ BOOST_FOREACH(const map_location &loc, adjs) - { - if (!map.on_board(loc)) continue; - // Add the tile to be checked if it hasn't already been and -Index: src/time_of_day.cpp -=================================================================== ---- src/time_of_day.cpp (revision 54624) -+++ src/time_of_day.cpp (revision 54625) -@@ -16,9 +16,9 @@ - /** @file */ - - #include "config.hpp" --#include "foreach.hpp" - #include "time_of_day.hpp" - -+#include <boost/foreach.hpp> - - std::ostream &operator<<(std::ostream &s, const tod_color& c){ - s << c.r << "," << c.g << "," << c.b; -@@ -62,7 +62,7 @@ - - void time_of_day::parse_times(const config& cfg, std::vector<time_of_day>& normal_times) - { -- foreach (const config &t, cfg.child_range("time")) { -+ BOOST_FOREACH(const config &t, cfg.child_range("time")) { - normal_times.push_back(time_of_day(t)); - } - -Index: src/persist_manager.cpp -=================================================================== ---- src/persist_manager.cpp (revision 54624) -+++ src/persist_manager.cpp (revision 54625) -@@ -16,7 +16,7 @@ - #include "persist_context.hpp" - #include "persist_manager.hpp" - --#include "foreach.hpp" -+#include <boost/foreach.hpp> - - persist_context &persist_manager::get_context(const std::string &ns) - { -@@ -36,7 +36,7 @@ - bool persist_manager::start_transaction() { - if (in_transaction_) return false; - bool result = true; -- foreach (context_map::reference ctx, contexts_){ -+ BOOST_FOREACH(context_map::reference ctx, contexts_){ - result &= ctx.second->start_transaction(); - } - in_transaction_ = true; -@@ -46,7 +46,7 @@ - bool persist_manager::end_transaction() { - if (!in_transaction_) return false; - bool result = true; -- foreach (context_map::reference ctx, contexts_){ -+ BOOST_FOREACH(context_map::reference ctx, contexts_){ - result &= ctx.second->end_transaction(); - } - in_transaction_ = !result; -@@ -56,7 +56,7 @@ - bool persist_manager::cancel_transaction() { - if (!in_transaction_) return false; - bool result = true; -- foreach (context_map::reference ctx, contexts_){ -+ BOOST_FOREACH(context_map::reference ctx, contexts_){ - result &= ctx.second->cancel_transaction(); - } - in_transaction_ = false; -Index: src/side_filter.cpp -=================================================================== ---- src/side_filter.cpp (revision 54624) -+++ src/side_filter.cpp (revision 54625) -@@ -18,7 +18,6 @@ - #include "global.hpp" - - #include "config.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "resources.hpp" - #include "side_filter.hpp" -@@ -26,6 +25,8 @@ - #include "team.hpp" - #include "serialization/string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine_sf("engine/side_filter"); - #define ERR_NG LOG_STREAM(err, log_engine_sf) - -@@ -61,7 +62,7 @@ - { - //@todo: replace with better implementation - std::vector<int> result; -- foreach (const team &t, *resources::teams) { -+ BOOST_FOREACH(const team &t, *resources::teams) { - if (match(t)) { - result.push_back(t.side()); - } -@@ -109,7 +110,7 @@ - else { - const std::vector<std::string>& these_team_names = utils::split(this_team_name); - bool search_futile = true; -- foreach(const std::string& this_single_team_name, these_team_names) { -+ BOOST_FOREACH(const std::string& this_single_team_name, these_team_names) { - if(this_single_team_name == that_team_name) { - search_futile = false; - break; -@@ -123,7 +124,7 @@ - if(cfg_.has_child("has_unit")) { - const vconfig& unit_filter = cfg_.child("has_unit"); - bool found = false; -- foreach (unit &u, *resources::units) { -+ BOOST_FOREACH(unit &u, *resources::units) { - if (u.side() != t.side()) { - continue; - } -@@ -134,7 +135,7 @@ - } - if(!found && unit_filter["search_recall_list"].to_bool(false)) { - const std::vector<unit>& recall_list = t.recall_list(); -- foreach(const unit& u, recall_list) { -+ BOOST_FOREACH(const unit& u, recall_list) { - scoped_recall_unit this_unit("this_unit", t.save_id(), &u - &recall_list[0]); - if(u.matches_filter(unit_filter, u.get_location(), flat_)) { - found = true; -@@ -152,7 +153,7 @@ - side_filter s_filter(enemy_of); - const std::vector<int>& teams = s_filter.get_teams(); - if(teams.empty()) return false; -- foreach(const int side, teams) { -+ BOOST_FOREACH(const int side, teams) { - if(!(*resources::teams)[side - 1].is_enemy(t.side())) - return false; - } -@@ -163,7 +164,7 @@ - side_filter s_filter(allied_with); - const std::vector<int>& teams = s_filter.get_teams(); - if(teams.empty()) return false; -- foreach(const int side, teams) { -+ BOOST_FOREACH(const int side, teams) { - if((*resources::teams)[side - 1].is_enemy(t.side())) - return false; - } -Index: src/theme.cpp -=================================================================== ---- src/theme.cpp (revision 54624) -+++ src/theme.cpp (revision 54625) -@@ -18,7 +18,6 @@ - #include "global.hpp" - - #include "font.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "hotkeys.hpp" - #include "log.hpp" -@@ -26,6 +25,7 @@ - #include "theme.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> - - static lg::log_domain log_display("display"); - #define DBG_DP LOG_STREAM(debug, log_display) -@@ -162,7 +162,7 @@ - { - std::vector<config> res_cfgs_; - // resolve all the partialresolutions -- foreach (const config &part, top_cfg.child_range("partialresolution")) -+ BOOST_FOREACH(const config &part, top_cfg.child_range("partialresolution")) - { - // follow the inheritance hierarchy and push all the nodes on the stack - std::vector<const config*> parent_stack(1, &part); -@@ -182,11 +182,11 @@ - while (!parent_stack.empty()) { - //override attributes - res_cfgs_.back().merge_attributes(*parent_stack.back()); -- foreach (const config &rm, parent_stack.back()->child_range("remove")) { -+ BOOST_FOREACH(const config &rm, parent_stack.back()->child_range("remove")) { - find_ref(rm["id"], res_cfgs_.back(), true); - } - -- foreach (const config &chg, parent_stack.back()->child_range("change")) -+ BOOST_FOREACH(const config &chg, parent_stack.back()->child_range("change")) - { - config &target = find_ref(chg["id"], res_cfgs_.back()); - target.merge_attributes(chg); -@@ -195,7 +195,7 @@ - // cannot add [status] sub-elements, but who cares - if (const config &c = parent_stack.back()->child("add")) - { -- foreach (const config::any_child &j, c.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &j, c.all_children_range()) { - res_cfgs_.back().add_child(j.key, j.cfg); - } - } -@@ -204,7 +204,7 @@ - } - } - // Add all the resolutions -- foreach (const config &res, top_cfg.child_range("resolution")) { -+ BOOST_FOREACH(const config &res, top_cfg.child_range("resolution")) { - dst_cfg.add_child("resolution", res); - } - // Add all the resolved resolutions -@@ -217,7 +217,7 @@ - static void do_resolve_rects(const config& cfg, config& resolved_config, config* resol_cfg = NULL) { - - // recursively resolve children -- foreach (const config::any_child &value, cfg.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &value, cfg.all_children_range()) { - config &childcfg = resolved_config.add_child(value.key); - do_resolve_rects(value.cfg, childcfg, - value.key == "resolution" ? &childcfg : resol_cfg); -@@ -549,7 +549,7 @@ - - int current_rating = 1000000; - const config *current = NULL; -- foreach (const config &i, cfg_.child_range("resolution")) -+ BOOST_FOREACH(const config &i, cfg_.child_range("resolution")) - { - int width = i["width"]; - int height = i["height"]; -@@ -611,7 +611,7 @@ - - if (const config &status_cfg = cfg.child("status")) - { -- foreach (const config::any_child &i, status_cfg.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &i, status_cfg.all_children_range()) { - status_.insert(std::pair<std::string, status_item>(i.key, status_item(i.cfg))); - } - if (const config &unit_image_cfg = status_cfg.child("unit_image")) { -@@ -621,19 +621,19 @@ - } - } - -- foreach (const config &p, cfg.child_range("panel")) { -+ BOOST_FOREACH(const config &p, cfg.child_range("panel")) { - panel new_panel(p); - set_object_location(new_panel, p["rect"], p["ref"]); - panels_.push_back(new_panel); - } - -- foreach (const config &lb, cfg.child_range("label")) { -+ BOOST_FOREACH(const config &lb, cfg.child_range("label")) { - label new_label(lb); - set_object_location(new_label, lb["rect"], lb["ref"]); - labels_.push_back(new_label); - } - -- foreach (const config &m, cfg.child_range("menu")) -+ BOOST_FOREACH(const config &m, cfg.child_range("menu")) - { - menu new_menu(m); - DBG_DP << "adding menu: " << (new_menu.is_context() ? "is context" : "not context") << "\n"; -@@ -699,7 +699,7 @@ - } - - // Change existing theme objects. -- foreach (const config &c, cfg.child_range("change")) -+ BOOST_FOREACH(const config &c, cfg.child_range("change")) - { - std::string id = c["id"]; - std::string ref_id = c["ref"]; -@@ -709,12 +709,12 @@ - } - - // Add new theme objects. -- foreach (const config &c, cfg.child_range("add")) { -+ BOOST_FOREACH(const config &c, cfg.child_range("add")) { - add_object(c); - } - - // Remove existent theme objects. -- foreach (const config &c, cfg.child_range("remove")) { -+ BOOST_FOREACH(const config &c, cfg.child_range("remove")) { - remove_object(c["id"]); - } - -@@ -758,7 +758,7 @@ - if (!cfg) - return; - -- foreach (const config &thm, cfg->child_range("theme")) -+ BOOST_FOREACH(const config &thm, cfg->child_range("theme")) - { - std::string thm_name = thm["name"]; - if (!thm["hidden"].to_bool(false)) -@@ -778,7 +778,7 @@ - - const theme::menu *theme::get_menu_item(const std::string &key) const - { -- foreach (const theme::menu &m, menus_) { -+ BOOST_FOREACH(const theme::menu &m, menus_) { - if (m.get_id() == key) return &m; - } - return NULL; -Index: src/addon/manager.cpp -=================================================================== ---- src/addon/manager.cpp (revision 54624) -+++ src/addon/manager.cpp (revision 54625) -@@ -19,7 +19,6 @@ - #include "addon/manager.hpp" - #include "dialogs.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "formatter.hpp" - #include "game_display.hpp" - #include "game_preferences.hpp" -@@ -41,6 +40,8 @@ - #include "wml_separators.hpp" - #include "formula_string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_config("config"); - #define ERR_CFG LOG_STREAM(err , log_config) - #define LOG_CFG LOG_STREAM(info, log_config) -@@ -321,11 +322,11 @@ - - make_directory(dir); - -- foreach (const config &d, cfg.child_range("dir")) { -+ BOOST_FOREACH(const config &d, cfg.child_range("dir")) { - unarchive_dir(dir, d); - } - -- foreach (const config &f, cfg.child_range("file")) { -+ BOOST_FOREACH(const config &f, cfg.child_range("file")) { - unarchive_file(dir, f); - } - } -@@ -701,7 +702,7 @@ - std::string missing = ""; - size_t count_missing = 0; - -- foreach(const std::string& i, dependencies) { -+ BOOST_FOREACH(const std::string& i, dependencies) { - if (std::find(installed.begin(), installed.end(), i) == installed.end()) { - missing += "\n" + i; - ++count_missing; -@@ -717,7 +718,7 @@ - std::vector< std::string > unsafe_matches; - std::ostringstream unsafe_list; - std::map<std::string, version_info> remote_version_map; -- foreach (const config &remote_addon, remote_addons_list) -+ BOOST_FOREACH(const config &remote_addon, remote_addons_list) - { - const std::string& name = remote_addon["name"]; - if (std::find(dependencies.begin(), dependencies.end(), name) != dependencies.end()) { -@@ -837,7 +838,7 @@ - if(!result) { - assert(failed_titles.empty() == false); - std::string failed_titles_list_fmt; -- foreach(const std::string& entry, failed_titles) { -+ BOOST_FOREACH(const std::string& entry, failed_titles) { - failed_titles_list_fmt += '\n'; - failed_titles_list_fmt += entry; - } -@@ -870,7 +871,7 @@ - std::vector<version_info> safe_local_versions; - std::vector<version_info> unsafe_local_versions; - std::map<std::string, version_info> remote_version_map; -- foreach (const config &remote_addon, remote_addons_list) -+ BOOST_FOREACH(const config &remote_addon, remote_addons_list) - { - const std::string& name = remote_addon["name"]; - const std::string& version = remote_addon["version"]; -@@ -1065,7 +1066,7 @@ - if(!result) { - assert(failed_titles.empty() == false); - std::string failed_titles_list_fmt; -- foreach(const std::string& entry, failed_titles) { -+ BOOST_FOREACH(const std::string& entry, failed_titles) { - failed_titles_list_fmt += '\n'; - failed_titles_list_fmt += entry; - } -@@ -1090,7 +1091,7 @@ - const std::string& addon, - const std::vector<std::string>& own_addons) - { -- foreach(const std::string& current_own_addon, own_addons) { -+ BOOST_FOREACH(const std::string& current_own_addon, own_addons) { - if(current_own_addon == addon) { - utils::string_map symbols; - symbols["addon"] = addon; -@@ -1171,7 +1172,7 @@ - - std::vector< addon_info > infos; - -- foreach(const config &c, addon_cfgs) -+ BOOST_FOREACH(const config &c, addon_cfgs) - { - const std::string& name = c["name"]; - const std::string& downloads = c["downloads"].str(); -@@ -1254,13 +1255,13 @@ - infos.push_back(inf); - } - -- foreach(const std::string& pub, publish_options) { -+ BOOST_FOREACH(const std::string& pub, publish_options) { - static const std::string publish_icon = "icons/icon-addon-publish.png"; - const std::string text = _("Publish add-on: ") + get_addon_name(pub); - options.push_back(IMAGE_PREFIX + publish_icon + COLUMN_SEPARATOR + font::GOOD_TEXT + text); - options_to_filter.push_back(text); - } -- foreach(const std::string& del, delete_options) { -+ BOOST_FOREACH(const std::string& del, delete_options) { - static const std::string delete_icon = "icons/icon-addon-delete.png"; - const std::string text = _("Delete add-on: ") + get_addon_name(del); - options.push_back(IMAGE_PREFIX + delete_icon + COLUMN_SEPARATOR + font::BAD_TEXT + text); -@@ -1408,7 +1409,7 @@ - - remove_names.clear(); - -- foreach(const std::string& id, remove_ids) { -+ BOOST_FOREACH(const std::string& id, remove_ids) { - remove_names.push_back(get_addon_name(id)); - } - -@@ -1425,7 +1426,7 @@ - - std::vector<std::string> failed_names, skipped_names, succeeded_names; - -- foreach(const std::string& id, remove_ids) { -+ BOOST_FOREACH(const std::string& id, remove_ids) { - const std::string& name = get_addon_name(id); - - if(have_addon_pbl_info(id) || have_addon_in_vcs_tree(id)) { -@@ -1531,12 +1532,12 @@ - } - static const std::string parentd = get_addon_campaigns_dir(); - std::vector<std::string> addon_info_files; -- foreach(std::string const& dir, addons) -+ BOOST_FOREACH(std::string const& dir, addons) - addon_info_files.push_back(parentd+"/"+dir+"/_info.cfg"); - - size_t i = 0; - -- foreach(std::string const& info_file, addon_info_files) { -+ BOOST_FOREACH(std::string const& info_file, addon_info_files) { - assert(i < addons.size()); - - std::string const& addon = addons[i]; -Index: src/addon/validation.cpp -=================================================================== ---- src/addon/validation.cpp (revision 54624) -+++ src/addon/validation.cpp (revision 54625) -@@ -17,8 +17,9 @@ - #include "global.hpp" - #include "addon/validation.hpp" - #include "config.hpp" --#include "foreach.hpp" - -+#include <boost/foreach.hpp> -+ - #include <cstring> - - const unsigned short default_campaignd_port = 15002; -@@ -44,10 +45,10 @@ - - bool check_names_legal(const config& dir) - { -- foreach (const config &path, dir.child_range("file")) { -+ BOOST_FOREACH(const config &path, dir.child_range("file")) { - if (!addon_name_legal(path["name"])) return false; - } -- foreach (const config &path, dir.child_range("dir")) { -+ BOOST_FOREACH(const config &path, dir.child_range("dir")) { - if (!addon_name_legal(path["name"])) return false; - if (!check_names_legal(path)) return false; - } -Index: src/mapgen.cpp -=================================================================== ---- src/mapgen.cpp (revision 54624) -+++ src/mapgen.cpp (revision 54625) -@@ -20,7 +20,6 @@ - - #include "global.hpp" - --#include "foreach.hpp" - #include "gettext.hpp" - #include "language.hpp" - #include "log.hpp" -@@ -34,6 +33,7 @@ - #include "formula_string_utils.hpp" - #include "SDL.h" - -+#include <boost/foreach.hpp> - - static lg::log_domain log_engine("engine"); - #define ERR_NG LOG_STREAM(err, log_engine) -@@ -777,7 +777,7 @@ - - std::vector<terrain_height_mapper> height_conversion; - -- foreach (const config &h, cfg.child_range("height")) { -+ BOOST_FOREACH(const config &h, cfg.child_range("height")) { - height_conversion.push_back(terrain_height_mapper(h)); - } - -@@ -912,7 +912,7 @@ - LOG_NG << (SDL_GetTicks() - ticks) << "\n"; ticks = SDL_GetTicks(); - - std::vector<terrain_converter> converters; -- foreach (const config &cv, cfg.child_range("convert")) { -+ BOOST_FOREACH(const config &cv, cfg.child_range("convert")) { - converters.push_back(terrain_converter(cv)); - } - -Index: src/cavegen.cpp -=================================================================== ---- src/cavegen.cpp (revision 54624) -+++ src/cavegen.cpp (revision 54625) -@@ -21,13 +21,14 @@ - #include "global.hpp" - - #include "cavegen.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "map.hpp" - #include "pathfind/pathfind.hpp" - #include "serialization/string_utils.hpp" - #include "util.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define LOG_NG LOG_STREAM(info, log_engine) - -@@ -147,7 +148,7 @@ - - void cave_map_generator::generate_chambers() - { -- foreach (const config &ch, cfg_.child_range("chamber")) -+ BOOST_FOREACH(const config &ch, cfg_.child_range("chamber")) - { - // If there is only a chance of the chamber appearing, deal with that here. - if (ch.has_attribute("chance") && (rand() % 100) < ch["chance"].to_int()) { -@@ -195,7 +196,7 @@ - - chambers_.push_back(new_chamber); - -- foreach (const config &p, ch.child_range("passage")) -+ BOOST_FOREACH(const config &p, ch.child_range("passage")) - { - const std::string &dst = p["destination"]; - -@@ -220,7 +221,7 @@ - if (c.items == NULL || c.locs.empty()) return; - - size_t index = 0; -- foreach (const config::any_child &it, c.items->all_children_range()) -+ BOOST_FOREACH(const config::any_child &it, c.items->all_children_range()) - { - config cfg = it.cfg; - config &filter = cfg.child("filter"); -Index: src/ai/lua/core.cpp -=================================================================== ---- src/ai/lua/core.cpp (revision 54624) -+++ src/ai/lua/core.cpp (revision 54625) -@@ -34,7 +34,6 @@ - #include "../../actions.hpp" - #include "../../attack_prediction.hpp" - #include "../../filesystem.hpp" --#include "../../foreach.hpp" - #include "../../game_display.hpp" - #include "../../gamestatus.hpp" - #include "../../log.hpp" -Index: src/ai/default/attack.cpp -=================================================================== ---- src/ai/default/attack.cpp (revision 54624) -+++ src/ai/default/attack.cpp (revision 54625) -@@ -25,7 +25,6 @@ - #include "../manager.hpp" - - #include "../../attack_prediction.hpp" --#include "foreach.hpp" - #include "../../game_config.hpp" - #include "../../log.hpp" - #include "../../map.hpp" -Index: src/ai/default/contexts.cpp -=================================================================== ---- src/ai/default/contexts.cpp (revision 54624) -+++ src/ai/default/contexts.cpp (revision 54625) -@@ -22,7 +22,6 @@ - #include "contexts.hpp" - - #include "../../actions.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - #include "../../map.hpp" - #include "../../resources.hpp" -Index: src/ai/default/ai.cpp -=================================================================== ---- src/ai/default/ai.cpp (revision 54624) -+++ src/ai/default/ai.cpp (revision 54625) -@@ -26,7 +26,6 @@ - - #include "../../array.hpp" - #include "../../dialogs.hpp" --#include "../../foreach.hpp" - #include "../../game_end_exceptions.hpp" - #include "../../game_events.hpp" - #include "../../game_preferences.hpp" -@@ -41,6 +40,8 @@ - - #include "../../pathfind/pathfind.hpp" - -+#include <boost/foreach.hpp> -+ - #include <iterator> - #include <algorithm> - #include <fstream> -@@ -144,7 +145,7 @@ - - void ai_default_recruitment_stage::on_create() { - stage::on_create(); -- foreach (const config &c, cfg_.child_range("limit")) { -+ BOOST_FOREACH(const config &c, cfg_.child_range("limit")) { - if (c.has_attribute("type") && c.has_attribute("max") ) { - maximum_counts_.insert(std::make_pair(c["type"],lexical_cast_default<int>(c["max"],0))); - } -@@ -193,7 +194,7 @@ - bool found = false; - // Find an available unit that can be recruited, - // matches the desired usage type, and comes in under budget. -- foreach (const std::string &name, current_team().recruits()) -+ BOOST_FOREACH(const std::string &name, current_team().recruits()) - { - const unit_type *ut = unit_types.find(name); - if (!ut) continue; -@@ -435,7 +436,7 @@ - - team &enemy_team = (*resources::teams)[j->side() - 1]; - const std::set<std::string> &recruits = enemy_team.recruits(); -- foreach (const std::string &rec, recruits) { -+ BOOST_FOREACH(const std::string &rec, recruits) { - get_combat_score_vs(ut,rec,score,weighting,0,0); - } - continue; -@@ -677,7 +678,7 @@ - double best_combat_score_of_advancement = 0; - bool best_combat_score_of_advancement_found = false; - int best_cost = recall_cost; -- foreach (const std::string &i, u.advances_to()) { -+ BOOST_FOREACH(const std::string &i, u.advances_to()) { - const unit_type *ut = unit_types.find(i); - if (!ut) { - continue; -Index: src/ai/configuration.cpp -=================================================================== ---- src/ai/configuration.cpp (revision 54624) -+++ src/ai/configuration.cpp (revision 54625) -@@ -22,12 +22,13 @@ - #include "configuration.hpp" - - #include "../filesystem.hpp" --#include "../foreach.hpp" - #include "../log.hpp" - #include "../serialization/parser.hpp" - #include "../serialization/preprocessor.hpp" - #include "../team.hpp" - -+#include <boost/foreach.hpp> -+ - #include <vector> - - namespace ai { -@@ -93,7 +94,7 @@ - } - - -- foreach (const config &ai_configuration, ais.child_range("ai")) { -+ BOOST_FOREACH(const config &ai_configuration, ais.child_range("ai")) { - const std::string &id = ai_configuration["id"]; - if (id.empty()){ - -@@ -118,7 +119,7 @@ - void configuration::add_era_ai_from_config(const config &era) - { - era_ai_configurations_.clear(); -- foreach (const config &ai_configuration, era.child_range("ai")) { -+ BOOST_FOREACH(const config &ai_configuration, era.child_range("ai")) { - const std::string &id = ai_configuration["id"]; - if (id.empty()){ - -@@ -196,7 +197,7 @@ - config aspect_config; - aspect_config["id"] = id; - -- foreach (const config &aiparam, cfg.child_range("ai")) { -+ BOOST_FOREACH(const config &aiparam, cfg.child_range("ai")) { - const config &_aspect = aiparam.find_child("aspect","id",id); - if (_aspect) { - aspect_config.append(_aspect); -@@ -216,7 +217,7 @@ - if (aspect_was_attribute) { - facet_config["value"] = aiparam[id]; - } else { -- foreach (const config &value, aiparam.child_range(id)) { -+ BOOST_FOREACH(const config &value, aiparam.child_range(id)) { - facet_config.add_child("value",value); - } - } -@@ -242,7 +243,7 @@ - - //leave only the [ai] children - cfg = config(); -- foreach (const config &aiparam, original_cfg.child_range("ai")) { -+ BOOST_FOREACH(const config &aiparam, original_cfg.child_range("ai")) { - cfg.add_child("ai",aiparam); - } - -@@ -264,7 +265,7 @@ - - //find version - int version = 10600; -- foreach (const config &aiparam, cfg.child_range("ai")) { -+ BOOST_FOREACH(const config &aiparam, cfg.child_range("ai")) { - if (const config::attribute_value *a = aiparam.get("version")){ - int v = a->to_int(version); - if (version<v) { -@@ -290,7 +291,7 @@ - config parsed_cfg = config(); - - LOG_AI_CONFIGURATION << "side "<< side <<": merging AI configurations"<< std::endl; -- foreach (const config &aiparam, cfg.child_range("ai")) { -+ BOOST_FOREACH(const config &aiparam, cfg.child_range("ai")) { - parsed_cfg.append(aiparam); - } - -@@ -302,7 +303,7 @@ - parsed_cfg.merge_children_by_attribute("aspect","id"); - - LOG_AI_CONFIGURATION << "side "<< side <<": removing duplicate [default] tags from aspects"<< std::endl; -- foreach (config &aspect_cfg, parsed_cfg.child_range("aspect")) { -+ BOOST_FOREACH(config &aspect_cfg, parsed_cfg.child_range("aspect")) { - if (!aspect_cfg.child("default")) { - WRN_AI_CONFIGURATION << "side "<< side <<": aspect with id=["<<aspect_cfg["id"]<<"] lacks default config facet!" <<std::endl; - continue; -@@ -341,7 +342,7 @@ - if (cfg["ai_algorithm"]=="idle_ai") { - is_idle_ai = true; - } else { -- foreach (config &aiparam, cfg.child_range("ai")) { -+ BOOST_FOREACH(config &aiparam, cfg.child_range("ai")) { - if (aiparam["ai_algorithm"]=="idle_ai") { - is_idle_ai = true; - break; -@@ -360,8 +361,8 @@ - - config fallback_stage_cfg_ai; - -- foreach (config &aiparam, cfg.child_range("ai")) { -- foreach (const well_known_aspect &wka, well_known_aspects) { -+ BOOST_FOREACH(config &aiparam, cfg.child_range("ai")) { -+ BOOST_FOREACH(const well_known_aspect &wka, well_known_aspects) { - if (wka.was_an_attribute_) { - aiparam.remove_attribute(wka.name_); - } else { -@@ -370,7 +371,7 @@ - } - - -- foreach (const config &aitarget, aiparam.child_range("target")) { -+ BOOST_FOREACH(const config &aitarget, aiparam.child_range("target")) { - config aigoal; - transfer_turns_and_time_of_day_data(aiparam,aigoal); - -@@ -388,14 +389,14 @@ - aiparam.clear_children("target"); - - -- foreach (config &ai_protect_unit, aiparam.child_range("protect_unit")) { -+ BOOST_FOREACH(config &ai_protect_unit, aiparam.child_range("protect_unit")) { - transfer_turns_and_time_of_day_data(aiparam,ai_protect_unit); - upgrade_protect_goal_config_from_1_07_02_to_1_07_03(side,ai_protect_unit,parsed_cfg,true); - } - aiparam.clear_children("protect_unit"); - - -- foreach (config &ai_protect_location, aiparam.child_range("protect_location")) { -+ BOOST_FOREACH(config &ai_protect_location, aiparam.child_range("protect_location")) { - transfer_turns_and_time_of_day_data(aiparam,ai_protect_location); - upgrade_protect_goal_config_from_1_07_02_to_1_07_03(side,ai_protect_location,parsed_cfg,false); - } -@@ -423,19 +424,19 @@ - fallback_stage_cfg_ai.clear_children("aspect"); - - //move [stage]s to root of the config -- foreach (const config &aistage, fallback_stage_cfg_ai.child_range("stage")) { -+ BOOST_FOREACH(const config &aistage, fallback_stage_cfg_ai.child_range("stage")) { - parsed_cfg.add_child("stage",aistage); - } - fallback_stage_cfg_ai.clear_children("stage"); - - //move [goal]s to root of the config -- foreach (const config &aigoal, fallback_stage_cfg_ai.child_range("goal")) { -+ BOOST_FOREACH(const config &aigoal, fallback_stage_cfg_ai.child_range("goal")) { - parsed_cfg.add_child("goal",aigoal); - } - fallback_stage_cfg_ai.clear_children("goal"); - - //move [modify_ai]'s to root of the config -- foreach (const config &aimodifyai, fallback_stage_cfg_ai.child_range("modify_ai")) { -+ BOOST_FOREACH(const config &aimodifyai, fallback_stage_cfg_ai.child_range("modify_ai")) { - parsed_cfg.add_child("modify_ai",aimodifyai); - } - fallback_stage_cfg_ai.clear_children("modify_ai"); -@@ -452,12 +453,12 @@ - { - config cfg; - -- foreach (const config &aiparam, ai_parameters) { -+ BOOST_FOREACH(const config &aiparam, ai_parameters) { - cfg.add_child("ai",aiparam); - } - - DBG_AI_CONFIGURATION << "side "<< side <<": upgrading aspects from syntax of 1.7.2 to 1.7.3, old-style config is:" << std::endl << cfg << std::endl; -- foreach (const well_known_aspect &wka, well_known_aspects) { -+ BOOST_FOREACH(const well_known_aspect &wka, well_known_aspects) { - upgrade_aspect_config_from_1_07_02_to_1_07_03(side, cfg,parsed_cfg,wka.name_,wka.was_an_attribute_); - } - } -Index: src/ai/contexts.cpp -=================================================================== ---- src/ai/contexts.cpp (revision 54624) -+++ src/ai/contexts.cpp (revision 54625) -@@ -47,6 +47,8 @@ - #include "../tod_manager.hpp" - #include "../unit_display.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_ai("ai/general"); - #define DBG_AI LOG_STREAM(debug, log_ai) - #define LOG_AI LOG_STREAM(info, log_ai) -@@ -223,19 +225,19 @@ - - void readonly_context_impl::on_readonly_context_create() { - //init the composite ai engines -- foreach(const config &cfg_element, cfg_.child_range("engine")){ -+ BOOST_FOREACH(const config &cfg_element, cfg_.child_range("engine")){ - engine::parse_engine_from_config(*this,cfg_element,std::back_inserter(engines_)); - } - - // init the composite ai aspects -- foreach(const config &cfg_element, cfg_.child_range("aspect")){ -+ BOOST_FOREACH(const config &cfg_element, cfg_.child_range("aspect")){ - std::vector<aspect_ptr> aspects; - engine::parse_aspect_from_config(*this,cfg_element,cfg_element["id"],std::back_inserter(aspects)); - add_aspects(aspects); - } - - // init the composite ai goals -- foreach(const config &cfg_element, cfg_.child_range("goal")){ -+ BOOST_FOREACH(const config &cfg_element, cfg_.child_range("goal")){ - engine::parse_goal_from_config(*this,cfg_element,std::back_inserter(get_goals())); - } - } -@@ -255,13 +257,13 @@ - config readonly_context_impl::to_readonly_context_config() const - { - config cfg; -- foreach(const engine_ptr e, engines_) { -+ BOOST_FOREACH(const engine_ptr e, engines_) { - cfg.add_child("engine",e->to_config()); - } -- foreach(const aspect_map::value_type a, aspects_) { -+ BOOST_FOREACH(const aspect_map::value_type a, aspects_) { - cfg.add_child("aspect",a.second->to_config()); - } -- foreach(const goal_ptr g, goals_) { -+ BOOST_FOREACH(const goal_ptr g, goals_) { - cfg.add_child("goal",g->to_config()); - } - return cfg; -@@ -366,7 +368,7 @@ - } - - for(std::map<map_location,pathfind::paths>::iterator m = res.begin(); m != res.end(); ++m) { -- foreach (const pathfind::paths::step &dest, m->second.destinations) -+ BOOST_FOREACH(const pathfind::paths::step &dest, m->second.destinations) - { - const map_location& src = m->first; - const map_location& dst = dest.curr; -@@ -406,7 +408,7 @@ - - void readonly_context_impl::add_aspects(std::vector< aspect_ptr > &aspects ) - { -- foreach (aspect_ptr a, aspects) { -+ BOOST_FOREACH(aspect_ptr a, aspects) { - const std::string id = a->get_id(); - known_aspect_map::iterator i = known_aspects_.find(id); - if (i != known_aspects_.end()) { -@@ -1024,7 +1026,7 @@ - // The 0.5 power avoids underestimating too much the damage of a wounded unit. - int hp = int(sqrt(double(un.hitpoints()) / un.max_hitpoints()) * 1000); - int most_damage = 0; -- foreach (const attack_type &att, un.attacks()) -+ BOOST_FOREACH(const attack_type &att, un.attacks()) - { - int damage = att.damage() * att.num_attacks() * (100 + tod_modifier); - if (damage > most_damage) { -@@ -1112,7 +1114,7 @@ - map_location const* best_occupied_keep = &map_location::null_location; - double move_left_at_best_occupied_keep = 0.0; - -- foreach (const pathfind::paths::step &dest, leader_paths.destinations) -+ BOOST_FOREACH(const pathfind::paths::step &dest, leader_paths.destinations) - { - const map_location &loc = dest.curr; - if (keeps().find(loc)!=keeps().end()){ -Index: src/ai/manager.cpp -=================================================================== ---- src/ai/manager.cpp (revision 54624) -+++ src/ai/manager.cpp (revision 54625) -@@ -27,13 +27,14 @@ - #include "registry.hpp" - #include "../game_events.hpp" - #include "../game_preferences.hpp" --#include "../foreach.hpp" - #include "../log.hpp" - #include "../replay.hpp" - #include "../serialization/string_utils.hpp" - #include "../statistics.hpp" - #include "composite/component.hpp" - -+#include <boost/foreach.hpp> -+ - #include <map> - #include <stack> - #include <vector> -@@ -89,7 +90,7 @@ - - if (this->ai_) { - ai_->on_create(); -- foreach (config &mod_ai, cfg_.child_range("modify_ai")) { -+ BOOST_FOREACH(config &mod_ai, cfg_.child_range("modify_ai")) { - if (!mod_ai.has_attribute("side")) { - mod_ai["side"] = side; - } -@@ -149,8 +150,8 @@ - cfg_.merge_children_by_attribute("aspect","id"); - } else { - // else run 'add_facet' command on each [aspect][facet] -- foreach (const config &cfg_a, cfg.child_range("aspect")) { -- foreach (const config &cfg_f, cfg_a.child_range("facet")) { -+ BOOST_FOREACH(const config &cfg_a, cfg.child_range("aspect")) { -+ BOOST_FOREACH(const config &cfg_f, cfg_a.child_range("facet")) { - readonly_context_->add_facet(cfg_a["id"],cfg_f); - } - } -Index: src/ai/composite/component.cpp -=================================================================== ---- src/ai/composite/component.cpp (revision 54624) -+++ src/ai/composite/component.cpp (revision 54625) -@@ -23,12 +23,12 @@ - #include "property_handler.hpp" - #include "../../config.hpp" - #include "../../log.hpp" --#include "../../foreach.hpp" - - #include "../formula/ai.hpp" - - #include <boost/lexical_cast.hpp> - #include <boost/regex.hpp> -+#include <boost/foreach.hpp> - - namespace pathfind { - -@@ -125,7 +125,7 @@ - std::vector<std::string> component::get_children_types() - { - std::vector<std::string> types; -- foreach (property_handler_map::value_type &ph, property_handlers_) { -+ BOOST_FOREACH(property_handler_map::value_type &ph, property_handlers_) { - types.push_back(ph.first); - } - return types; -@@ -241,9 +241,9 @@ - - s << offset_str << type<<"["<<root->get_id() <<"] "<<root->get_engine()<<" "<<root->get_name()<< std::endl; - -- foreach (std::string t, t_list) { -+ BOOST_FOREACH(std::string t, t_list) { - std::vector<component*> c_list = root->get_children(t); -- foreach (component *c, c_list) { -+ BOOST_FOREACH(component *c, c_list) { - print_component(c,t,s,offset+1); - } - } -Index: src/ai/composite/stage.cpp -=================================================================== ---- src/ai/composite/stage.cpp (revision 54624) -+++ src/ai/composite/stage.cpp (revision 54625) -@@ -22,7 +22,6 @@ - #include "engine.hpp" - #include "stage.hpp" - #include "../contexts.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - #include "../../resources.hpp" - #include "../../tod_manager.hpp" -Index: src/ai/composite/engine.cpp -=================================================================== ---- src/ai/composite/engine.cpp (revision 54624) -+++ src/ai/composite/engine.cpp (revision 54625) -@@ -21,7 +21,6 @@ - #include "engine.hpp" - #include "contexts.hpp" - --#include "../../foreach.hpp" - #include "../../log.hpp" - - namespace ai { -Index: src/ai/composite/engine_default.cpp -=================================================================== ---- src/ai/composite/engine_default.cpp (revision 54624) -+++ src/ai/composite/engine_default.cpp (revision 54625) -@@ -24,7 +24,6 @@ - #include "engine_default.hpp" - #include "rca.hpp" - #include "stage.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - - namespace ai { -Index: src/ai/composite/goal.cpp -=================================================================== ---- src/ai/composite/goal.cpp (revision 54624) -+++ src/ai/composite/goal.cpp (revision 54625) -@@ -24,7 +24,6 @@ - #include "../../log.hpp" - #include "../lua/lua_object.hpp" - #include "../../gamestatus.hpp" --#include "../../foreach.hpp" - #include "../../resources.hpp" - #include "../../scripting/lua.hpp" - #include "../../terrain_filter.hpp" -@@ -34,6 +33,7 @@ - #include "../../variable.hpp" - - #include <boost/lexical_cast.hpp> -+#include <boost/foreach.hpp> - - namespace ai { - -@@ -128,7 +128,7 @@ - if (!criteria) return; - - //find the enemy leaders and explicit targets -- foreach (const unit &u, *resources::units) { -+ BOOST_FOREACH(const unit &u, *resources::units) { - if (u.matches_filter(vconfig(criteria), u.get_location())) { - LOG_AI_GOAL << "found explicit target unit at ... " << u.get_location() << " with value: " << value() << "\n"; - *target_list = target(u.get_location(), value(), target::EXPLICIT); -@@ -173,7 +173,7 @@ - - std::set<map_location> items; - filter_ptr_->get_locations(items); -- foreach (const map_location &loc, items) -+ BOOST_FOREACH(const map_location &loc, items) - { - LOG_AI_GOAL << "found explicit target location ... " << loc << " with value: " << value() << std::endl; - *target_list = target(loc, value(), target::EXPLICIT); -@@ -252,7 +252,7 @@ - - std::set<map_location> items; - if (protect_unit_) { -- foreach (const unit &u, units) -+ BOOST_FOREACH(const unit &u, units) - { - if (protect_only_own_unit_ && u.side() != get_side()) { - continue; -@@ -268,9 +268,9 @@ - } - DBG_AI_GOAL << "side " << get_side() << ": seaching for threats in "+goal_type+" goal" << std::endl; - // Look for directions to protect a specific location or specific unit. -- foreach (const map_location &loc, items) -+ BOOST_FOREACH(const map_location &loc, items) - { -- foreach (const unit &u, units) -+ BOOST_FOREACH(const unit &u, units) - { - int distance = distance_between(u.get_location(), loc); - if (current_team().is_enemy(u.side()) && distance < radius_ && -@@ -325,7 +325,7 @@ - handler_->handle(c, true, l_obj); - std::vector < target > targets = *(l_obj->get()); - -- foreach (target tg, targets) -+ BOOST_FOREACH(target tg, targets) - { - *target_list = tg; - } -Index: src/ai/composite/engine_fai.cpp -=================================================================== ---- src/ai/composite/engine_fai.cpp (revision 54624) -+++ src/ai/composite/engine_fai.cpp (revision 54625) -@@ -25,7 +25,6 @@ - #include "../formula/candidates.hpp" - #include "../formula/stage_side_formulas.hpp" - #include "../formula/stage_unit_formulas.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - - namespace ai { -Index: src/ai/composite/aspect.hpp -=================================================================== ---- src/ai/composite/aspect.hpp (revision 54624) -+++ src/ai/composite/aspect.hpp (revision 54625) -@@ -265,7 +265,7 @@ - , facets_() - , default_() - { -- foreach (const config &cfg_element, this->cfg_.child_range("facet") ){ -+ BOOST_FOREACH(const config &cfg_element, this->cfg_.child_range("facet") ){ - add_facet(-1,cfg_element); - } - -@@ -291,7 +291,7 @@ - { - std::vector<aspect_ptr> facets_base; - engine::parse_aspect_from_config(*this,cfg,this->get_id(),std::back_inserter(facets_base)); -- foreach (aspect_ptr a, facets_base ){ -+ BOOST_FOREACH(aspect_ptr a, facets_base ){ - typename aspect_type<T>::typesafe_ptr b = boost::dynamic_pointer_cast< typesafe_aspect<T> > (a); - facets.push_back(b); - } -@@ -301,7 +301,7 @@ - virtual void recalculate() const - { - ///@todo 1.9 optimize in case of an aspect which returns variant -- foreach (const typename aspect_type<T>::typesafe_ptr &f, make_pair(facets_.rbegin(),facets_.rend())) { -+ BOOST_FOREACH(const typename aspect_type<T>::typesafe_ptr &f, make_pair(facets_.rbegin(),facets_.rend())) { - if (f->active()) { - this->value_ = boost::shared_ptr<T>(f->get_ptr()); - this->valid_ = true; -@@ -316,7 +316,7 @@ - virtual config to_config() const - { - config cfg = aspect::to_config(); -- foreach (const typename aspect_type<T>::typesafe_ptr f, facets_) { -+ BOOST_FOREACH(const typename aspect_type<T>::typesafe_ptr f, facets_) { - cfg.add_child("facet",f->to_config()); - } - if (default_) { -@@ -334,7 +334,7 @@ - std::vector< aspect_ptr > facets; - engine::parse_aspect_from_config(*this,cfg,this->get_id(),std::back_inserter(facets)); - int j=0; -- foreach (aspect_ptr a, facets ){ -+ BOOST_FOREACH(aspect_ptr a, facets ){ - typename aspect_type<T>::typesafe_ptr b = boost::dynamic_pointer_cast< typesafe_aspect<T> > (a); - facets_.insert(facets_.begin()+pos+j,b); - j++; -Index: src/ai/composite/property_handler.hpp -=================================================================== ---- src/ai/composite/property_handler.hpp (revision 54624) -+++ src/ai/composite/property_handler.hpp (revision 54625) -@@ -23,9 +23,9 @@ - #define AI_COMPOSITE_PROPERTY_HANDLER_HPP_INCLUDED - - #include <boost/function.hpp> -+#include <boost/foreach.hpp> - - #include "config.hpp" --#include "foreach.hpp" - #include "ai/composite/component.hpp" - - namespace ai{ -@@ -134,7 +134,7 @@ - std::vector<component*> handle_get_children() - { - std::vector<component*> children; -- foreach (t_ptr v, values_) { -+ BOOST_FOREACH(t_ptr v, values_) { - children.push_back(&*v); - } - return children; -@@ -149,7 +149,7 @@ - t_ptr_vector values; - factory_(values,cfg); - int j=0; -- foreach (t_ptr b, values ){ -+ BOOST_FOREACH(t_ptr b, values ){ - values_.insert(values_.begin()+pos+j,b); - j++; - } -@@ -200,7 +200,7 @@ - //* is a special case - 'delete all facets' - if (child.id == "*") { - bool b = false; -- foreach(typename aspect_map::value_type a, aspects_) { -+ BOOST_FOREACH(typename aspect_map::value_type a, aspects_) { - b |= a.second->delete_all_facets(); - } - return b; -@@ -212,7 +212,7 @@ - std::vector<component*> handle_get_children() - { - std::vector<component*> children; -- foreach(typename aspect_map::value_type a, aspects_) { -+ BOOST_FOREACH(typename aspect_map::value_type a, aspects_) { - children.push_back(&*a.second); - } - return children; -Index: src/ai/composite/ai.cpp -=================================================================== ---- src/ai/composite/ai.cpp (revision 54624) -+++ src/ai/composite/ai.cpp (revision 54625) -@@ -27,11 +27,11 @@ - #include "stage.hpp" - #include "../manager.hpp" - #include "../../actions.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - - #include <boost/bind.hpp> - #include <boost/function.hpp> -+#include <boost/foreach.hpp> - - namespace ai { - -@@ -60,7 +60,7 @@ - cfg_["id"]<<"]"<<std::endl; - - // init the composite ai stages -- foreach(const config &cfg_element, cfg_.child_range("stage")){ -+ BOOST_FOREACH(const config &cfg_element, cfg_.child_range("stage")){ - add_stage(cfg_element); - } - -@@ -115,7 +115,7 @@ - std::vector< stage_ptr > stages; - create_stage(stages,cfg); - int j=0; -- foreach (stage_ptr b, stages ){ -+ BOOST_FOREACH(stage_ptr b, stages ){ - stages_.push_back(b); - j++; - } -@@ -128,7 +128,7 @@ - std::vector< goal_ptr > goals; - create_goal(goals,cfg); - int j=0; -- foreach (goal_ptr b, goals ){ -+ BOOST_FOREACH(goal_ptr b, goals ){ - get_goals().push_back(b); - j++; - } -@@ -137,7 +137,7 @@ - - - void ai_composite::play_turn(){ -- foreach(stage_ptr &s, stages_){ -+ BOOST_FOREACH(stage_ptr &s, stages_){ - s->play_stage(); - } - } -@@ -206,7 +206,7 @@ - config cfg; - - //serialize the composite ai stages -- foreach(const stage_ptr &s, stages_){ -+ BOOST_FOREACH(const stage_ptr &s, stages_){ - cfg.add_child("stage",s->to_config()); - } - -Index: src/ai/formula/candidates.cpp -=================================================================== ---- src/ai/formula/candidates.cpp (revision 54624) -+++ src/ai/formula/candidates.cpp (revision 54625) -@@ -19,10 +19,11 @@ - - #include "ai.hpp" - #include "candidates.hpp" --#include "foreach.hpp" - #include "../../log.hpp" - #include "../../resources.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_formula_ai("ai/engine/fai"); - #define ERR_AI LOG_STREAM(err, log_formula_ai) - -@@ -32,7 +33,7 @@ - void candidate_action_manager::load_config(const config& cfg, ai::formula_ai* ai, function_symbol_table* function_table) - { - // register candidate actions -- foreach (const config &rc_action, cfg.child_range("register_candidate_action")) -+ BOOST_FOREACH(const config &rc_action, cfg.child_range("register_candidate_action")) - { - candidate_action_ptr new_ca = load_candidate_action_from_config(rc_action,ai,function_table); - -@@ -67,7 +68,7 @@ - { - evaluated_candidate_actions_.clear(); - -- foreach(candidate_action_ptr cm, candidate_actions_) -+ BOOST_FOREACH(candidate_action_ptr cm, candidate_actions_) - { - cm->evaluate(ai, units); - evaluated_candidate_actions_.insert(cm); -@@ -116,7 +117,7 @@ - const config & filter_params = cfg.child("filter"); - - if( filter_params ) { -- foreach( const config::attribute filter_param, filter_params.attribute_range() ) -+ BOOST_FOREACH( const config::attribute filter_param, filter_params.attribute_range() ) - { - game_logic::const_formula_ptr filter_formula( - new game_logic::formula(filter_param.second, function_table)); -Index: src/ai/formula/stage_side_formulas.cpp -=================================================================== ---- src/ai/formula/stage_side_formulas.cpp (revision 54624) -+++ src/ai/formula/stage_side_formulas.cpp (revision 54625) -@@ -22,7 +22,6 @@ - #include "stage_side_formulas.hpp" - #include "ai.hpp" - --#include "../../foreach.hpp" - #include "../../formula.hpp" - #include "../../formula_function.hpp" - #include "../../log.hpp" -Index: src/ai/formula/ai.cpp -=================================================================== ---- src/ai/formula/ai.cpp (revision 54624) -+++ src/ai/formula/ai.cpp (revision 54625) -@@ -32,7 +32,6 @@ - - #include "../../callable_objects.hpp" - #include "../../game_display.hpp" --#include "../../foreach.hpp" - #include "../../formula_debugger.hpp" - #include "../../log.hpp" - #include "../../menu_events.hpp" -@@ -42,6 +41,8 @@ - #include "../../tod_manager.hpp" - #include "../../pathfind/pathfind.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_formula_ai("ai/engine/fai"); - #define DBG_AI LOG_STREAM(debug, log_formula_ai) - #define LOG_AI LOG_STREAM(info, log_formula_ai) -@@ -548,7 +549,7 @@ - variant villages_from_set(const Container& villages, - const std::set<map_location>* exclude=NULL) { - std::vector<variant> vars; -- foreach(const map_location& loc, villages) { -+ BOOST_FOREACH(const map_location& loc, villages) { - if(exclude && exclude->count(loc)) { - continue; - } -@@ -617,7 +618,7 @@ - { - const std::vector<std::string> &rp = get_recruitment_pattern(); - std::vector<variant> vars; -- foreach (const std::string &i, rp) { -+ BOOST_FOREACH(const std::string &i, rp) { - vars.push_back(variant(i)); - } - return variant(&vars); -@@ -751,7 +752,7 @@ - std::vector<variant> v; - tmp.push_back( v ); - } -- foreach (const unit &u, units) { -+ BOOST_FOREACH(const unit &u, units) { - tmp[u.side() - 1].push_back(variant(new unit_callable(u))); - } - for( size_t i = 0; i<tmp.size(); ++i) -@@ -924,7 +925,7 @@ - //make sure we don't run out of refcount - vars_.add_ref(); - -- foreach (const config &func, cfg_.child_range("function")) -+ BOOST_FOREACH(const config &func, cfg_.child_range("function")) - { - const t_string &name = func["name"]; - const t_string &inputs = func["inputs"]; -@@ -947,7 +948,7 @@ - if (const config &ai_vars = cfg_.child("vars")) - { - variant var; -- foreach (const config::attribute &i, ai_vars.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, ai_vars.attribute_range()) { - var.serialize_from_string(i.second); - vars_.add(i.first, var); - } -Index: src/ai/formula/function_table.cpp -=================================================================== ---- src/ai/formula/function_table.cpp (revision 54624) -+++ src/ai/formula/function_table.cpp (revision 54625) -@@ -24,7 +24,6 @@ - - #include "../../attack_prediction.hpp" - #include "../../filesystem.hpp" --#include "../../foreach.hpp" - #include "../../game_display.hpp" - #include "../../log.hpp" - #include "../../map_label.hpp" -@@ -36,6 +35,7 @@ - #include "../../unit.hpp" - #include "../../pathfind/pathfind.hpp" - -+#include <boost/foreach.hpp> - - static lg::log_domain log_formula_ai("ai/engine/fai"); - #define LOG_AI LOG_STREAM(info, log_formula_ai) -@@ -355,7 +355,7 @@ - if( scores[current_side][i] > 98 ) - continue; - -- foreach( int side , enemies) { -+ BOOST_FOREACH( int side , enemies) { - int diff = scores[current_side][i] - scores[side][i]; - if ( diff > enemy_tollerancy) { - valid = false; -@@ -365,7 +365,7 @@ - } - - if( valid ) { -- foreach( int side , allies) { -+ BOOST_FOREACH( int side , allies) { - if ( scores[current_side][i] - scores[side][i] > ally_tollerancy ) { - valid = false; - break; -@@ -563,7 +563,7 @@ - visited_locs.erase(starting_loc); - - std::vector<variant> res; -- foreach( const map_location& ml, visited_locs) { -+ BOOST_FOREACH( const map_location& ml, visited_locs) { - res.push_back( variant(new location_callable( ml ) ) ); - } - -@@ -841,7 +841,7 @@ - ai::attack_analysis* analysis = convert_variant<ai::attack_analysis>(attack); - //unit_map units_with_moves(*resources::units); - //typedef std::pair<map_location, map_location> mv; -- //foreach (const mv &m, analysis->movements) { -+ //BOOST_FOREACH(const mv &m, analysis->movements) { - // units_with_moves.move(m.first, m.second); - //} - -@@ -1629,7 +1629,7 @@ - - std::vector<attack_type> attacks = attacker.attacks(); - -- foreach(const attack_type &attack, attacks) { -+ BOOST_FOREACH(const attack_type &attack, attacks) { - const int dmg = round_damage(attack.damage(), defender.damage_from(attack), 100) * attack.num_attacks(); - if (attack.range() == "melee") { - highest_melee_damage = std::max(highest_melee_damage, dmg); -Index: src/ai/testing/ca_testing_move_to_targets.cpp -=================================================================== ---- src/ai/testing/ca_testing_move_to_targets.cpp (revision 54624) -+++ src/ai/testing/ca_testing_move_to_targets.cpp (revision 54625) -@@ -22,7 +22,6 @@ - - #include "../composite/ai.hpp" - #include "../actions.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - #include "../../map.hpp" - #include "../../resources.hpp" -Index: src/ai/testing/ca_testing_recruitment.cpp -=================================================================== ---- src/ai/testing/ca_testing_recruitment.cpp (revision 54624) -+++ src/ai/testing/ca_testing_recruitment.cpp (revision 54625) -@@ -25,7 +25,6 @@ - #include "../composite/rca.hpp" - #include "../composite/stage.hpp" - #include "../../gamestatus.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - #include "../../map.hpp" - #include "../../resources.hpp" -@@ -33,6 +32,7 @@ - #include "../../wml_exception.hpp" - #include "../../pathfind/pathfind.hpp" - -+#include <boost/foreach.hpp> - - #include <numeric> - #include <string> -@@ -206,7 +206,7 @@ - int get_current_qty(const std::string &name) const - { - int counter = 0; -- foreach(unit &un, *resources::units){ -+ BOOST_FOREACH(unit &un, *resources::units){ - if(un.side() == side() && un.type_id() == name) // @todo: is type_id good? - { - counter++; -@@ -345,7 +345,7 @@ - const int hitpoints_const = 100; - double score = 0; - double total_weight = 0; -- foreach(const unit &enemy_unit, *resources::units) -+ BOOST_FOREACH(const unit &enemy_unit, *resources::units) - { - if(enemy_unit.can_recruit() || !t.is_enemy(enemy_unit.side())) - { -@@ -358,13 +358,13 @@ - - score += compare_unit_types(info, *enemy_info) * weight; - } -- foreach(fake_team &enemy_team, fake_teams) -+ BOOST_FOREACH(fake_team &enemy_team, fake_teams) - { - if(!t.is_enemy(enemy_team.side())) - { - continue; - } -- foreach(const potential_recruit &enemy_unit, enemy_team.extra_units()) -+ BOOST_FOREACH(const potential_recruit &enemy_unit, enemy_team.extra_units()) - { - const unit_type *enemy_info = enemy_unit.type(); - VALIDATE(enemy_info, "Unknown unit type : " + enemy_unit.id() + " while updating recruit quality."); -@@ -386,7 +386,7 @@ - - /*static void update_recruit_qualities(fake_team &t, std::vector<fake_team> &fake_teams) - { -- foreach ( potential_recruit &recruit, t.recruit_list() ) -+ BOOST_FOREACH( potential_recruit &recruit, t.recruit_list() ) - { - double score = get_unit_quality(*recruit.type(),t,fake_teams); - recruit.set_quality(score); -@@ -425,11 +425,11 @@ - } - - std::map<std::string, int> current_units; -- foreach (const potential_recruit &i, t.extra_units()) -+ BOOST_FOREACH(const potential_recruit &i, t.extra_units()) - { - current_units[(i.id())]++; - } -- foreach (const unit &i, *resources::units) -+ BOOST_FOREACH(const unit &i, *resources::units) - { - if (i.side()==t.side()) - { -@@ -440,7 +440,7 @@ - double max_quality = recruit_list[0].quality(); - int max_cost = recruit_list[0].cost(); - std::vector<const potential_recruit*> sorted = std::vector<const potential_recruit*>(); -- foreach(const potential_recruit &i, recruit_list) -+ BOOST_FOREACH(const potential_recruit &i, recruit_list) - { - if(i.cost() > max_cost) - { -@@ -457,7 +457,7 @@ - potential_recruit_sorter sorter(max_cost, max_quality, quality_factor); - std::sort(sorted.begin(), sorted.end(), sorter); - int recruited = 0; -- foreach(const potential_recruit *i, sorted) -+ BOOST_FOREACH(const potential_recruit *i, sorted) - { - if(recruited < max_units_to_recruit) - { -@@ -488,7 +488,7 @@ - static void ai_choose_recruits(fake_team &t, int max_units_to_recruit, double quality_factor, bool counter_recruit) - { - std::vector<potential_recruit> recruits = ai_choose_best_recruits(t, max_units_to_recruit, quality_factor, counter_recruit); -- foreach(potential_recruit &i, recruits) { -+ BOOST_FOREACH(potential_recruit &i, recruits) { - t.fake_recruit(i); - } - -@@ -554,7 +554,7 @@ - //DBG_AI << "start of get_recruit_qualities" << std::endl; - typedef std::map<const unit_type*, std::vector<double> > unit_map; - unit_map enemies; -- foreach(unit &un, *resources::units){ -+ BOOST_FOREACH(unit &un, *resources::units){ - if(t.is_enemy(un.side()) && !un.can_recruit()){ - enemies[un.type()].push_back( - static_cast<double>(un.hitpoints()) -@@ -562,10 +562,10 @@ - } - } - DBG_AI << "before extra_units of fake_teams: enemies.size() = " << enemies.size() << std::endl; -- foreach(fake_team &tmp_t, fake_teams) -+ BOOST_FOREACH(fake_team &tmp_t, fake_teams) - { - if (t.is_enemy(tmp_t.side())) { -- foreach(potential_recruit &rec, tmp_t.extra_units()) -+ BOOST_FOREACH(potential_recruit &rec, tmp_t.extra_units()) - { - enemies[rec.type()].push_back(1.0); - } -@@ -573,10 +573,10 @@ - } - DBG_AI << "after extra_units of fake_teams: enemies.size() = " << enemies.size() << std::endl; - -- foreach(potential_recruit &rec, recruit_list) { -+ BOOST_FOREACH(potential_recruit &rec, recruit_list) { - double score = 0; - double weighting = 0; -- foreach(unit_map::value_type &enemy, enemies) { -+ BOOST_FOREACH(unit_map::value_type &enemy, enemies) { - double hitpoints_sum = std::accumulate(enemy.second.begin(),enemy.second.end(),0); - score += compare_unit_types(*rec.type(), *enemy.first) * hitpoints_sum; - weighting += hitpoints_sum; -@@ -621,14 +621,14 @@ - { - std::vector<defender_pair_type*> defenders; - std::vector<enemy_pair_type*> enemies; -- foreach(unit &un, *resources::units) -+ BOOST_FOREACH(unit &un, *resources::units) - { - if(t.is_enemy(un.side())) - { - // const unit_type &enemy_type = *un.type(); - //enemy_pair_type *pair = new enemy_pair_type(new unit_data(un.id(), un.type())); - enemy_pair_type *pair = new enemy_pair_type(un.type()); -- foreach(unit &defender, *resources::units) -+ BOOST_FOREACH(unit &defender, *resources::units) - { - if(!t.is_enemy(defender.side())){ - //int score = compare_unit_types(*defender.type(), enemy_type); -@@ -639,9 +639,9 @@ - //} - } - } -- foreach(fake_team &tmp_t, fake_teams){ -+ BOOST_FOREACH(fake_team &tmp_t, fake_teams){ - if(!t.is_enemy(tmp_t.side())){ -- foreach(potential_recruit &rec, tmp_t.extra_units()){ -+ BOOST_FOREACH(potential_recruit &rec, tmp_t.extra_units()){ - // int score = compare_unit_types(*rec.type(), enemy_type); - // if(score >= 0){ - //pair->add_defender(new unit_data(rec.id(), rec.type())); -@@ -657,7 +657,7 @@ - //const unit_type &defender_type = *un.type(); - //defender_pair_type *pair = new defender_pair_type(new unit_data(un.id(), un.type())); - defender_pair_type *pair = new defender_pair_type(un.type()); -- foreach(unit &enemy, *resources::units) -+ BOOST_FOREACH(unit &enemy, *resources::units) - { - //int score = compare_unit_types(defender_type, *enemy.type()); - //if(score >= 0) -@@ -666,9 +666,9 @@ - pair->add_enemy(enemy.type()); - //} - } -- foreach(fake_team &tmp_t, fake_teams){ -+ BOOST_FOREACH(fake_team &tmp_t, fake_teams){ - if(t.is_enemy(tmp_t.side())){ -- foreach(potential_recruit &rec, tmp_t.extra_units()){ -+ BOOST_FOREACH(potential_recruit &rec, tmp_t.extra_units()){ - //int score = compare_unit_types(defender_type, *rec.type()); - //if(score >= 0){ - //pair->add_enemy(new unit_data(rec.id(), rec.type())); -@@ -680,14 +680,14 @@ - defenders.push_back(pair); - } - } -- foreach(fake_team &tmp_t, fake_teams) -+ BOOST_FOREACH(fake_team &tmp_t, fake_teams) - { -- foreach(potential_recruit &rec, tmp_t.extra_units()){ -+ BOOST_FOREACH(potential_recruit &rec, tmp_t.extra_units()){ - if(t.is_enemy(tmp_t.side())){ - //const unit_type &enemy_type = *rec.type(); - //enemy_pair_type *pair = new enemy_pair_type(new unit_data(rec.id(), rec.type())); - enemy_pair_type *pair = new enemy_pair_type(rec.type()); -- foreach(unit &defender, *resources::units){ -+ BOOST_FOREACH(unit &defender, *resources::units){ - if(t.is_enemy(defender.side())){ - continue; - } -@@ -698,11 +698,11 @@ - //} - } - //HIER -- foreach(fake_team &sub_t, fake_teams){ -+ BOOST_FOREACH(fake_team &sub_t, fake_teams){ - if(t.is_enemy(sub_t.side())){ - continue; - } -- foreach(potential_recruit &sub_rec, sub_t.extra_units()){ -+ BOOST_FOREACH(potential_recruit &sub_rec, sub_t.extra_units()){ - //int score = compare_unit_types(*sub_rec.type(), enemy_type); - //if(score >= 0){ - //pair->add_defender(new unit_data(sub_rec.id(), sub_rec.type())); -@@ -715,7 +715,7 @@ - //const unit_type &defender_type = *rec.type(); - //defender_pair_type *pair = new defender_pair_type(new unit_data(rec.id(), rec.type())); - defender_pair_type *pair = new defender_pair_type(rec.type()); -- foreach(unit &enemy, *resources::units) -+ BOOST_FOREACH(unit &enemy, *resources::units) - { - if(!t.is_enemy(enemy.side())){ - continue; -@@ -726,11 +726,11 @@ - pair->add_enemy(rec.type()); - // } - } -- foreach(fake_team &sub_t, fake_teams){ -+ BOOST_FOREACH(fake_team &sub_t, fake_teams){ - if(!t.is_enemy(sub_t.side())){ - continue; - } -- foreach(potential_recruit &sub_rec, sub_t.extra_units()){ -+ BOOST_FOREACH(potential_recruit &sub_rec, sub_t.extra_units()){ - // int score = compare_unit_types(defender_type, *sub_rec.type()); - // if(score >= 0){ - //pair->add_enemy(new unit_data(sub_rec.id(), sub_rec.type())); -@@ -744,17 +744,17 @@ - } - double min_score = 0; - double max_score = 0; -- foreach(enemy_pair_type *pair, enemies) -+ BOOST_FOREACH(enemy_pair_type *pair, enemies) - { - // if(pair->defenders.size() == 0) - // { - // pair->score = -10000; - // }else{ -- //foreach(unit_data *defender, pair->defenders) -- foreach(unit_type *defender, pair->defenders) -+ //BOOST_FOREACH(unit_data *defender, pair->defenders) -+ BOOST_FOREACH(unit_type *defender, pair->defenders) - { - unsigned int defender_enemies = 0; -- foreach(defender_pair_type *defender_p, defenders) -+ BOOST_FOREACH(defender_pair_type *defender_p, defenders) - { - //if(defender->id == defender_p->defender->id){ - if(defender->type_name()() == defender_p->defender->type_name()){ -@@ -778,7 +778,7 @@ - } - double score = 0; - score -= max_score - min_score; -- foreach(enemy_pair_type *pair, enemies) -+ BOOST_FOREACH(enemy_pair_type *pair, enemies) - { - score += pair->score; - } -@@ -798,16 +798,16 @@ - typedef std::map<const unit_type*, std::vector<double> > unit_map; - unit_map enemies; - unit_map defenders; -- foreach(unit &un, *resources::units){ -+ BOOST_FOREACH(unit &un, *resources::units){ - if(t.is_enemy(un.side())){ - enemies[un.type()].push_back((double)un.hitpoints() / (double)un.max_hitpoints()); - }else{ - defenders[un.type()].push_back(un.hitpoints() / un.max_hitpoints()); - } - } -- foreach(fake_team &tmp_t, fake_teams) -+ BOOST_FOREACH(fake_team &tmp_t, fake_teams) - { -- foreach(potential_recruit &rec, tmp_t.extra_units()) -+ BOOST_FOREACH(potential_recruit &rec, tmp_t.extra_units()) - { - if(t.is_enemy(tmp_t.side())){ - enemies[rec.type()].push_back(1.0); -@@ -817,13 +817,13 @@ - } - } - double result = 0; -- foreach(unit_map::value_type &defender, defenders) -+ BOOST_FOREACH(unit_map::value_type &defender, defenders) - { - double defenders_score = 0; -- foreach(unit_map::value_type &enemy, enemies) -+ BOOST_FOREACH(unit_map::value_type &enemy, enemies) - { - double hitpoints_sum = 0; -- foreach(double i, enemy.second) -+ BOOST_FOREACH(double i, enemy.second) - { - hitpoints_sum += i; - } -@@ -831,7 +831,7 @@ - - } - double hitpoints_sum = 0; -- foreach(double i, defender.second) -+ BOOST_FOREACH(double i, defender.second) - { - hitpoints_sum += i; - } -@@ -842,7 +842,7 @@ - return result; - // vector<defender_pair> defenders; - // vector<enemy_pair> enemies; --// //foreach(unit &un, *resources::units) -+// //BOOST_FOREACH(unit &un, *resources::units) - // //{ - // // if(t.is_enemy(un.side())) - // // { -@@ -851,14 +851,14 @@ - // // defenders.push_back(un.id()); - // // } - // //} --// foreach(unit &un, *resources::units) -+// BOOST_FOREACH(unit &un, *resources::units) - // { - // if(t.is_enemy(un.side())) - // { - // const unit_type &enemy_type = un.type(); - // enemy_pair pair; - // pair.enemy = new unit_data(un.id(), enemy_type); --// foreach(unit &defender, *resources::units) -+// BOOST_FOREACH(unit &defender, *resources::units) - // { - // int score = compare_unit_types(defender.type(), enemy_type); - // if(score >= 0) -@@ -873,7 +873,7 @@ - // const unit_type &defender_type = un.type(); - // defender_pair pair; - // pair.defender = new unit_data(defender.id(), defender_type); --// foreach(unit &enemy, *resources::units) -+// BOOST_FOREACH(unit &enemy, *resources::units) - // { - // int score = compare_unit_types(defender_type, enemy.type()); - // if(score >= 0) -@@ -885,10 +885,10 @@ - // enemies.push_back(pair); - // } - // } --// foreach(fake_team &tmp_t, fake_teams) -+// BOOST_FOREACH(fake_team &tmp_t, fake_teams) - // { - // if(t.is_enemy(tmp_t.side())){ --// foreach(potential_recruit &rec, tmp_t.extra_units()) -+// BOOST_FOREACH(potential_recruit &rec, tmp_t.extra_units()) - // { - // - // } -@@ -898,7 +898,7 @@ - // - // } - // //std::vector<unit> no_defense_enemies; --// foreach(enemy_pair &pair, enemies) -+// BOOST_FOREACH(enemy_pair &pair, enemies) - // { - // if(pair.defenders.size() == 0) - // { -@@ -906,11 +906,11 @@ - // - // pair.score = 0; - // }else{ --// foreach(unit_data &defender, pair.defenders) -+// BOOST_FOREACH(unit_data &defender, pair.defenders) - // { - // //unit_type &defender = defender_data.type; - // unsigned int defender_enemies = 0; --// foreach(defender_pair &defender_p, defenders) -+// BOOST_FOREACH(defender_pair &defender_p, defenders) - // { - // if(defender.id == defender_p.defender.id){ - // defender_enemies = defender_p.enemies.size(); -@@ -924,7 +924,7 @@ - // } - // //enemy_pair *worst_pair = &enemies[0]; - // double total_score = 0; --// foreach(enemy_pair &pair, enemies) -+// BOOST_FOREACH(enemy_pair &pair, enemies) - // { - // total_score += pair.score; - // } -@@ -936,7 +936,7 @@ - // //unit &worst_def_unit; - // vector<defender_pair> defenders; - // vector<enemy_pair> enemies; --// /*foreach(unit &un, *resources::units) -+// /*BOOST_FOREACH(unit &un, *resources::units) - // { - // if(t.is_enemy(un.side())) - // { -@@ -945,14 +945,14 @@ - // defenders.push_back(un.id()); - // } - // }*/ --// foreach(unit &un, *resources::units) -+// BOOST_FOREACH(unit &un, *resources::units) - // { - // if(t.is_enemy(un.side())) - // { - // const unit_type &enemy_type = un.type(); - // enemy_pair pair; - // pair.enemy = un; --// foreach(unit &defender, *resources::units) -+// BOOST_FOREACH(unit &defender, *resources::units) - // { - // int score = compare_unit_types(defender.type(), enemy_type); - // if(score >= 0) -@@ -967,7 +967,7 @@ - // const unit_type &defender_type = un.type(); - // defender_pair pair; - // pair.defender = un; --// foreach(unit &enemy, *resources::units) -+// BOOST_FOREACH(unit &enemy, *resources::units) - // { - // int score = compare_unit_types(defender_type, enemy.type()); - // if(score >= 0) -@@ -980,7 +980,7 @@ - // } - // } - // //std::vector<unit> no_defense_enemies; --// foreach(enemy_pair &pair, enemies) -+// BOOST_FOREACH(enemy_pair &pair, enemies) - // { - // if(pair.defenders.size() == 0) - // { -@@ -988,10 +988,10 @@ - // return pair.enemy; - // //pair.score = 0; - // }else{ --// foreach(unit &defender, pair.defenders) -+// BOOST_FOREACH(unit &defender, pair.defenders) - // { - // unsigned int defender_enemies = 0; --// foreach(defender_pair &defender_p, defenders) -+// BOOST_FOREACH(defender_pair &defender_p, defenders) - // { - // if(defender.id() == defender_p.defender.id()){ - // defender_enemies = defender_p.enemies.size(); -@@ -1004,7 +1004,7 @@ - // } - // } - // enemy_pair *worst_pair = &enemies[0]; --// foreach(enemy_pair &pair, enemies) -+// BOOST_FOREACH(enemy_pair &pair, enemies) - // { - // if(pair.score < worst_pair.score) - // { -@@ -1039,16 +1039,16 @@ - for(int recruited_amount = 0; recruited_amount < max_units_to_recruit; recruited_amount++) - { - -- foreach(fake_team &t, fake_teams) -+ BOOST_FOREACH(fake_team &t, fake_teams) - { - t.reset(); - } - - std::vector<potential_recruit> ai_recruit_list = ai_t->recruit_list(); - -- foreach(potential_recruit &recruit_type, ai_recruit_list) -+ BOOST_FOREACH(potential_recruit &recruit_type, ai_recruit_list) - { -- foreach(fake_team &t, fake_teams) -+ BOOST_FOREACH(fake_team &t, fake_teams) - { - t.reset(); - } -@@ -1063,7 +1063,7 @@ - } - LOG_AI << "Pretend that we recruited: " << recruit_type.id() << std::endl; - ai_t->fake_recruit(recruit_type); -- foreach(fake_team &t, fake_teams) -+ BOOST_FOREACH(fake_team &t, fake_teams) - { - if(ai_t->side() == t.side()) - { -Index: src/ai/testing/ca_global_fallback.cpp -=================================================================== ---- src/ai/testing/ca_global_fallback.cpp (revision 54624) -+++ src/ai/testing/ca_global_fallback.cpp (revision 54625) -@@ -25,7 +25,6 @@ - #include "../actions.hpp" - - #include "../../game_display.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - #include "../../map.hpp" - #include "../../map_label.hpp" -@@ -36,6 +35,7 @@ - #include "../../terrain_filter.hpp" - #include "../../tod_manager.hpp" - -+#include <boost/foreach.hpp> - - namespace ai { - -@@ -89,7 +89,7 @@ - LOG_AI << "start" << std::endl; - const int ticks = SDL_GetTicks(); - double res_sum = 0; -- foreach( unit &u, *resources::units) -+ BOOST_FOREACH( unit &u, *resources::units) - { - if (u.side()!=get_side()) - { -Index: src/ai/testing/stage_fallback.cpp -=================================================================== ---- src/ai/testing/stage_fallback.cpp (revision 54624) -+++ src/ai/testing/stage_fallback.cpp (revision 54625) -@@ -23,7 +23,6 @@ - #include "../configuration.hpp" - #include "../manager.hpp" - #include "../composite/ai.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - - namespace ai { -Index: src/ai/testing/ca.cpp -=================================================================== ---- src/ai/testing/ca.cpp (revision 54624) -+++ src/ai/testing/ca.cpp (revision 54625) -@@ -25,7 +25,6 @@ - #include "../composite/rca.hpp" - #include "../composite/stage.hpp" - #include "../../gamestatus.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - #include "../../map.hpp" - #include "../../resources.hpp" -@@ -33,6 +32,7 @@ - #include "../../wml_exception.hpp" - #include "../../pathfind/pathfind.hpp" - -+#include <boost/foreach.hpp> - - #include <numeric> - -@@ -306,7 +306,7 @@ - bool found = false; - // Find an available unit that can be recruited, - // matches the desired usage type, and comes in under budget. -- foreach (const std::string &name, current_team().recruits()) -+ BOOST_FOREACH(const std::string &name, current_team().recruits()) - { - const unit_type *ut = unit_types.find(name); - if (!ut) continue; -@@ -686,7 +686,7 @@ - possible_moves.insert(std::pair<map_location,pathfind::paths>(leader->get_location(), leader_paths)); - - map_location loc; -- foreach (const map_location &l, route.steps) -+ BOOST_FOREACH(const map_location &l, route.steps) - { - if (leader_paths.destinations.contains(l) && - power_projection(l, get_enemy_dstsrc()) < leader->hitpoints() * max_risk) -@@ -779,7 +779,7 @@ - // The leader can't move to his keep, try to move to the closest location - // to the keep where there are no enemies in range. - int current_distance = distance_between(leader->get_location(), keep); -- foreach (const pathfind::paths::step &dest, leader_paths.destinations) -+ BOOST_FOREACH(const pathfind::paths::step &dest, leader_paths.destinations) - { - if (!units_.find(dest.curr).valid()){ - const int new_distance = distance_between(dest.curr,keep); -@@ -1728,12 +1728,12 @@ - }*/ - //int leader_adj_count = 0; - std::vector<map_location> leaders_adj_v; -- foreach(unit_map::const_iterator leader, leaders){ -+ BOOST_FOREACH(unit_map::const_iterator leader, leaders){ - map_location tmp_leader_adj[6]; - get_adjacent_tiles(leader->get_location(), tmp_leader_adj); -- foreach(map_location &loc, tmp_leader_adj){ -+ BOOST_FOREACH(map_location &loc, tmp_leader_adj){ - bool found = false; -- foreach(map_location &new_loc, leaders_adj_v){ -+ BOOST_FOREACH(map_location &new_loc, leaders_adj_v){ - if(new_loc == loc){ - found = true; - break; -@@ -1974,7 +1974,7 @@ - } - std::vector<unit_map::unit_iterator> ai_leaders = resources::units->find_leaders(get_side()); - bool allied_leaders_available = false; -- foreach(team &tmp_team, *resources::teams){ -+ BOOST_FOREACH(team &tmp_team, *resources::teams){ - if(!current_team().is_enemy(tmp_team.side())){ - std::vector<unit_map::unit_iterator> allied_leaders = resources::units->find_leaders(get_side()); - if (!allied_leaders.empty()){ -@@ -2001,7 +2001,7 @@ - calculate_moves(*resources::units, possible_moves, friends_srcdst, friends_dstsrc, false, true); - - //check for each ai leader if he should move away from his keep -- foreach(unit_map::unit_iterator &ai_leader, ai_leaders){ -+ BOOST_FOREACH(unit_map::unit_iterator &ai_leader, ai_leaders){ - //only if leader is on a keep - if (!resources::game_map->is_keep(ai_leader->get_location())) { - continue; -@@ -2059,7 +2059,7 @@ - } - ai_leader->remove_movement_ai(); - } -- foreach(unit_map::unit_iterator &leader, ai_leaders){ -+ BOOST_FOREACH(unit_map::unit_iterator &leader, ai_leaders){ - leader->remove_movement_ai(); - } - //ERR_AI_TESTING_AI_DEFAULT << get_name() << ": evaluate - not yet implemented" << std::endl; -Index: src/ai/testing/stage_rca.cpp -=================================================================== ---- src/ai/testing/stage_rca.cpp (revision 54624) -+++ src/ai/testing/stage_rca.cpp (revision 54625) -@@ -25,10 +25,10 @@ - #include "../composite/engine.hpp" - #include "../composite/property_handler.hpp" - #include "../gamestate_observer.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - namespace ai { - -@@ -49,7 +49,7 @@ - void candidate_action_evaluation_loop::on_create() - { - //init the candidate actions -- foreach(const config &cfg_element, cfg_.child_range("candidate_action")){ -+ BOOST_FOREACH(const config &cfg_element, cfg_.child_range("candidate_action")){ - engine::parse_candidate_action_from_config(*this,cfg_element,back_inserter(candidate_actions_)); - } - -@@ -69,7 +69,7 @@ - config candidate_action_evaluation_loop::to_config() const - { - config cfg = stage::to_config(); -- foreach(candidate_action_ptr ca, candidate_actions_){ -+ BOOST_FOREACH(candidate_action_ptr ca, candidate_actions_){ - cfg.add_child("candidate_action",ca->to_config()); - } - return cfg; -@@ -88,7 +88,7 @@ - { - LOG_AI_TESTING_RCA_DEFAULT << "Starting candidate action evaluation loop for side "<< get_side() << std::endl; - -- foreach(candidate_action_ptr ca, candidate_actions_){ -+ BOOST_FOREACH(candidate_action_ptr ca, candidate_actions_){ - ca->enable(); - } - -@@ -103,7 +103,7 @@ - candidate_action_ptr best_ptr; - - //Evaluation -- foreach(candidate_action_ptr ca_ptr, candidate_actions_){ -+ BOOST_FOREACH(candidate_action_ptr ca_ptr, candidate_actions_){ - if (!ca_ptr->is_enabled()){ - DBG_AI_TESTING_RCA_DEFAULT << "Skipping disabled candidate action: "<< *ca_ptr << std::endl; - continue; -Index: src/ai/testing/aspect_attacks.cpp -=================================================================== ---- src/ai/testing/aspect_attacks.cpp (revision 54624) -+++ src/ai/testing/aspect_attacks.cpp (revision 54625) -@@ -22,7 +22,6 @@ - - #include "../manager.hpp" - #include "../../actions.hpp" --#include "../../foreach.hpp" - #include "../../log.hpp" - #include "../../map.hpp" - #include "../../team.hpp" -@@ -31,6 +30,8 @@ - #include "../../unit.hpp" - #include "../../pathfind/pathfind.hpp" - -+#include <boost/foreach.hpp> -+ - namespace ai { - - namespace testing_ai_default { -@@ -468,7 +469,7 @@ - // The 0.5 power avoids underestimating too much the damage of a wounded unit. - int hp = int(sqrt(double(un.hitpoints()) / un.max_hitpoints()) * 1000); - int most_damage = 0; -- foreach (const attack_type &att, un.attacks()) -+ BOOST_FOREACH(const attack_type &att, un.attacks()) - { - int damage = att.damage() * att.num_attacks() * (100 + tod_modifier); - if (damage > most_damage) { -@@ -572,7 +573,7 @@ - // The 0.5 power avoids underestimating too much the damage of a wounded unit. - int hp = int(sqrt(double(un.hitpoints()) / un.max_hitpoints()) * 1000); - int most_damage = 0; -- foreach (const attack_type &att, un.attacks()) -+ BOOST_FOREACH(const attack_type &att, un.attacks()) - { - int damage = att.damage() * att.num_attacks() * (100 + tod_modifier); - if (damage > most_damage) { -Index: src/play_controller.cpp -=================================================================== ---- src/play_controller.cpp (revision 54624) -+++ src/play_controller.cpp (revision 54625) -@@ -21,7 +21,6 @@ - - #include "play_controller.hpp" - #include "dialogs.hpp" --#include "foreach.hpp" - #include "game_events.hpp" - #include "gettext.hpp" - #include "halo.hpp" -@@ -46,6 +45,8 @@ - #include "whiteboard/manager.hpp" - #include "scripting/lua.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define LOG_NG LOG_STREAM(info, log_engine) - #define DBG_NG LOG_STREAM(debug, log_engine) -@@ -173,7 +174,7 @@ - place_sides_in_preferred_locations(); - } - -- foreach (const config &t, level_.child_range("time_area")) { -+ BOOST_FOREACH(const config &t, level_.child_range("time_area")) { - tod_manager_.add_time_area(t); - } - -@@ -192,7 +193,7 @@ - std::vector<team_builder_ptr> team_builders; - - int team_num = 0; -- foreach (const config &side, level_.child_range("side")) -+ BOOST_FOREACH(const config &side, level_.child_range("side")) - { - std::string save_id = get_unique_saveid(side, seen_save_ids); - seen_save_ids.insert(save_id); -@@ -212,7 +213,7 @@ - team_builders.push_back(tb_ptr); - } - -- foreach (team_builder_ptr tb_ptr, team_builders) -+ BOOST_FOREACH(team_builder_ptr tb_ptr, team_builders) - { - gamestate_.build_team_stage_two(tb_ptr); - } -@@ -337,7 +338,7 @@ - int num_pos = map_.num_valid_starting_positions(); - - int side_num = 1; -- foreach (const config &side, level_.child_range("side")) -+ BOOST_FOREACH(const config &side, level_.child_range("side")) - { - for(int p = 1; p <= num_pos; ++p) { - const map_location& pos = map_.starting_position(p); -@@ -703,7 +704,7 @@ - } - - // Write terrain_graphics data in snapshot, too -- foreach (const config &tg, level_.child_range("terrain_graphics")) { -+ BOOST_FOREACH(const config &tg, level_.child_range("terrain_graphics")) { - cfg.add_child("terrain_graphics", tg); - } - -@@ -914,7 +915,7 @@ - switch(mode) { - case gui::TEXTBOX_SEARCH: - { -- foreach (const unit &u, units_){ -+ BOOST_FOREACH(const unit &u, units_){ - const map_location& loc = u.get_location(); - if(!gui_->fogged(loc) && - !(teams_[gui_->viewing_team()].is_enemy(u.side()) && u.invisible(loc))) -@@ -931,13 +932,13 @@ - } - case gui::TEXTBOX_MESSAGE: - { -- foreach(const team& t, teams_) { -+ BOOST_FOREACH(const team& t, teams_) { - if(!t.is_empty()) - dictionary.insert(t.current_player()); - } - - // Add observers -- foreach(const std::string& o, gui_->observers()){ -+ BOOST_FOREACH(const std::string& o, gui_->observers()){ - dictionary.insert(o); - } - //Exclude own nick from tab-completion. -@@ -1341,7 +1342,7 @@ - - if (non_interactive()) { - std::cout << "winner: "; -- foreach (unsigned l, seen_leaders) { -+ BOOST_FOREACH(unsigned l, seen_leaders) { - std::string ai = ai::manager::get_active_ai_identifier_for_side(l); - if (ai.empty()) ai = "default ai"; - std::cout << l << " (using " << ai << ") "; -Index: src/unit_abilities.cpp -=================================================================== ---- src/unit_abilities.cpp (revision 54624) -+++ src/unit_abilities.cpp (revision 54625) -@@ -18,7 +18,6 @@ - * Manage unit-abilities, like heal, cure, and weapon_specials. - */ - --#include "foreach.hpp" - #include "gamestatus.hpp" - #include "log.hpp" - #include "resources.hpp" -@@ -27,6 +26,8 @@ - #include "team.hpp" - #include "unit_abilities.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define ERR_NG LOG_STREAM(err, log_engine) - -@@ -124,7 +125,7 @@ - { - if (const config &abilities = cfg_.child("abilities")) - { -- foreach (const config &i, abilities.child_range(ability)) { -+ BOOST_FOREACH(const config &i, abilities.child_range(ability)) { - if (ability_active(ability, i, loc) && - ability_affects_self(ability, i, loc)) - return true; -@@ -141,7 +142,7 @@ - const config &adj_abilities = it->cfg_.child("abilities"); - if (!adj_abilities) - continue; -- foreach (const config &j, adj_abilities.child_range(ability)) { -+ BOOST_FOREACH(const config &j, adj_abilities.child_range(ability)) { - if (unit_abilities::affects_side(j, teams_manager::get_teams(), side(), it->side()) && - it->ability_active(ability, j, adjacent[i]) && - ability_affects_adjacent(ability, j, i, loc)) -@@ -158,7 +159,7 @@ - - if (const config &abilities = cfg_.child("abilities")) - { -- foreach (const config &i, abilities.child_range(ability)) { -+ BOOST_FOREACH(const config &i, abilities.child_range(ability)) { - if (ability_active(ability, i, loc) && - ability_affects_self(ability, i, loc)) - res.cfgs.push_back(std::pair<const config *, map_location>(&i, loc)); -@@ -175,7 +176,7 @@ - const config &adj_abilities = it->cfg_.child("abilities"); - if (!adj_abilities) - continue; -- foreach (const config &j, adj_abilities.child_range(ability)) { -+ BOOST_FOREACH(const config &j, adj_abilities.child_range(ability)) { - if (unit_abilities::affects_side(j, teams_manager::get_teams(), side(), it->side()) && - it->ability_active(ability, j, adjacent[i]) && - ability_affects_adjacent(ability, j, i, loc)) -@@ -193,7 +194,7 @@ - - const config &abilities = cfg_.child("abilities"); - if (!abilities) return res; -- foreach (const config::any_child &ab, abilities.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &ab, abilities.all_children_range()) { - std::string const &id = ab.cfg["id"]; - if (!id.empty()) - res.push_back(id); -@@ -208,7 +209,7 @@ - const config &abilities = cfg_.child("abilities"); - if (!abilities) return res; - -- foreach (const config::any_child &ab, abilities.all_children_range()) -+ BOOST_FOREACH(const config::any_child &ab, abilities.all_children_range()) - { - if (force_active || ability_active(ab.key, ab.cfg, loc_)) - { -@@ -265,9 +266,9 @@ - get_adjacent_tiles(loc,adjacent); - const unit_map& units = *resources::units; - -- foreach (const config &i, cfg.child_range("filter_adjacent")) -+ BOOST_FOREACH(const config &i, cfg.child_range("filter_adjacent")) - { -- foreach (const std::string &j, utils::split(i["adjacent"])) -+ BOOST_FOREACH(const std::string &j, utils::split(i["adjacent"])) - { - map_location::DIRECTION index = - map_location::parse_direction(j); -@@ -282,9 +283,9 @@ - } - } - -- foreach (const config &i, cfg.child_range("filter_adjacent_location")) -+ BOOST_FOREACH(const config &i, cfg.child_range("filter_adjacent_location")) - { -- foreach (const std::string &j, utils::split(i["adjacent"])) -+ BOOST_FOREACH(const std::string &j, utils::split(i["adjacent"])) - { - map_location::DIRECTION index = map_location::parse_direction(j); - if (index == map_location::NDIRECTIONS) { -@@ -310,7 +311,7 @@ - - assert(dir >=0 && dir <= 5); - static const std::string adjacent_names[6] = {"n","ne","se","s","sw","nw"}; -- foreach (const config &i, cfg.child_range("affect_adjacent")) -+ BOOST_FOREACH(const config &i, cfg.child_range("affect_adjacent")) - { - std::vector<std::string> dirs = utils::split(i["adjacent"]); - if(std::find(dirs.begin(),dirs.end(),adjacent_names[dir]) != dirs.end()) { -@@ -366,7 +367,7 @@ - int flat = 0; - int stack = 0; - typedef std::pair<const config *, map_location> pt; -- foreach (pt const &p, cfgs) -+ BOOST_FOREACH(pt const &p, cfgs) - { - int value = (*p.first)[key].to_int(def); - if ((*p.first)["cumulative"].to_bool()) { -@@ -398,7 +399,7 @@ - int flat = 0; - int stack = 0; - typedef std::pair<const config *, map_location> pt; -- foreach (pt const &p, cfgs) -+ BOOST_FOREACH(pt const &p, cfgs) - { - int value = (*p.first)[key].to_int(def); - if ((*p.first)["cumulative"].to_bool()) { -@@ -448,7 +449,7 @@ - namespace { - bool get_special_children(std::vector<const config*>& result, const config& parent, - const std::string& id, bool just_peeking=false) { -- foreach (const config::any_child &sp, parent.all_children_range()) -+ BOOST_FOREACH(const config::any_child &sp, parent.all_children_range()) - { - if (sp.key == id || sp.cfg["id"] == id) { - if(just_peeking) { -@@ -495,7 +496,7 @@ - unit_ability_list res; - if (const config &specials = cfg_.child("specials")) - { -- foreach (const config &i, specials.child_range(special)) { -+ BOOST_FOREACH(const config &i, specials.child_range(special)) { - if (special_active(i, true)) - res.cfgs.push_back(std::pair<const config *, map_location> - (&i, attacker_ ? aloc_ : dloc_)); -@@ -504,7 +505,7 @@ - if (!other_attack_) return res; - if (const config &specials = other_attack_->cfg_.child("specials")) - { -- foreach (const config &i, specials.child_range(special)) { -+ BOOST_FOREACH(const config &i, specials.child_range(special)) { - if (other_attack_->special_active(i, false)) - res.cfgs.push_back(std::pair<const config *, map_location> - (&i, attacker_ ? dloc_ : aloc_)); -@@ -519,7 +520,7 @@ - const config &specials = cfg_.child("specials"); - if (!specials) return res; - -- foreach (const config::any_child &sp, specials.all_children_range()) -+ BOOST_FOREACH(const config::any_child &sp, specials.all_children_range()) - { - if (force || special_active(sp.cfg, true)) { - const t_string &name = sp.cfg["name"]; -@@ -544,7 +545,7 @@ - const config &specials = cfg_.child("specials"); - if (!specials) return res; - -- foreach (const config::any_child &sp, specials.all_children_range()) -+ BOOST_FOREACH(const config::any_child &sp, specials.all_children_range()) - { - char const *s = force || special_active(sp.cfg, true) ? - "name" : "name_inactive"; -@@ -679,9 +680,9 @@ - get_adjacent_tiles(dloc_,adjacent); - } - -- foreach (const config &i, cfg.child_range("filter_adjacent")) -+ BOOST_FOREACH(const config &i, cfg.child_range("filter_adjacent")) - { -- foreach (const std::string &j, utils::split(i["adjacent"])) -+ BOOST_FOREACH(const std::string &j, utils::split(i["adjacent"])) - { - map_location::DIRECTION index = - map_location::parse_direction(j); -@@ -694,9 +695,9 @@ - } - } - -- foreach (const config &i, cfg.child_range("filter_adjacent_location")) -+ BOOST_FOREACH(const config &i, cfg.child_range("filter_adjacent_location")) - { -- foreach (const std::string &j, utils::split(i["adjacent"])) -+ BOOST_FOREACH(const std::string &j, utils::split(i["adjacent"])) - { - map_location::DIRECTION index = - map_location::parse_direction(j); -Index: src/video.cpp -=================================================================== ---- src/video.cpp (revision 54624) -+++ src/video.cpp (revision 54625) -@@ -21,7 +21,6 @@ - #include "global.hpp" - - #include "font.hpp" --#include "foreach.hpp" - #include "image.hpp" - #include "log.hpp" - #include "preferences.hpp" -@@ -29,6 +28,8 @@ - #include "sdl_utils.hpp" - #include "video.hpp" - -+#include <boost/foreach.hpp> -+ - #include <vector> - #include <map> - #include <algorithm> -@@ -105,7 +106,7 @@ - { - events.clear(); - -- foreach (SDL_Rect const &rect, update_rects) { -+ BOOST_FOREACH(SDL_Rect const &rect, update_rects) { - events.push_back(event(rect, true)); - events.push_back(event(rect, false)); - } -@@ -354,7 +355,7 @@ - int CVideo::bppForMode( int x, int y, int flags) - { - int test_values[3] = {getBpp(), 32, 16}; -- foreach(int &bpp, test_values) { -+ BOOST_FOREACH(int &bpp, test_values) { - if(modePossible(x, y, bpp, flags) > 0) { - return bpp; - } -Index: src/tools/schema/tag.cpp -=================================================================== ---- src/tools/schema/tag.cpp (revision 54624) -+++ src/tools/schema/tag.cpp (revision 54625) -@@ -21,7 +21,9 @@ - #include "tools/schema/tag.hpp" - - #include "config.hpp" --#include "foreach.hpp" -+ -+#include <boost/foreach.hpp> -+ - namespace schema_validation{ - - /*WIKI -@@ -81,15 +83,15 @@ - if (cfg.has_attribute("super")){ - super_ = cfg["super"].str(); - } -- foreach (const config &child, cfg.child_range("tag")) { -+ BOOST_FOREACH(const config &child, cfg.child_range("tag")) { - class_tag child_tag (child); - add_tag(child_tag); - } -- foreach (const config &child, cfg.child_range("key")) { -+ BOOST_FOREACH(const config &child, cfg.child_range("key")) { - class_key child_key (child); - add_key(child_key); - } -- foreach (const config &link, cfg.child_range("link")) { -+ BOOST_FOREACH(const config &link, cfg.child_range("link")) { - std::string link_name = link["name"].str(); - add_link(link_name); - } -Index: src/tools/exploder_cutter.cpp -=================================================================== ---- src/tools/exploder_cutter.cpp (revision 54624) -+++ src/tools/exploder_cutter.cpp (revision 54625) -@@ -15,12 +15,13 @@ - - #include "exploder_cutter.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "serialization/parser.hpp" - #include "serialization/preprocessor.hpp" - #include "serialization/string_utils.hpp" - #include "SDL_image.h" - -+#include <boost/foreach.hpp> -+ - #include <iostream> - - cutter::cutter() -@@ -48,7 +49,7 @@ - - void cutter::load_masks(const config& conf) - { -- foreach (const config &m, conf.child_range("mask")) -+ BOOST_FOREACH(const config &m, conf.child_range("mask")) - { - const std::string name = m["name"]; - const std::string image = get_mask_dir() + "/" + std::string(m["image"]); -@@ -94,7 +95,7 @@ - { - surface_map res; - -- foreach (const config &part, conf.child_range("part")) { -+ BOOST_FOREACH(const config &part, conf.child_range("part")) { - add_sub_image(surf, res, &part); - } - -Index: src/builder.cpp -=================================================================== ---- src/builder.cpp (revision 54624) -+++ src/builder.cpp (revision 54625) -@@ -20,13 +20,14 @@ - - #include "builder.hpp" - --#include "foreach.hpp" - #include "loadscreen.hpp" - #include "log.hpp" - #include "map.hpp" - #include "serialization/string_utils.hpp" - #include "image.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define ERR_NG LOG_STREAM(err, log_engine) - #define WRN_NG LOG_STREAM(warn, log_engine) -@@ -65,12 +66,12 @@ - sorted_images = true; - } - -- foreach(const rule_image_rand& ri, images){ -+ BOOST_FOREACH(const rule_image_rand& ri, images){ - bool is_background = ri->is_background(); - - imagelist& img_list = is_background ? images_background : images_foreground; - -- foreach(const rule_image_variant& variant, ri->variants){ -+ BOOST_FOREACH(const rule_image_variant& variant, ri->variants){ - if(!variant.tods.empty() && variant.tods.find(tod) == variant.tods.end()) - continue; - -@@ -250,12 +251,12 @@ - - tile& btile = tile_map_[loc]; - -- foreach(animated<image::locator>& a, btile.images_background) { -+ BOOST_FOREACH(animated<image::locator>& a, btile.images_background) { - if(a.need_update()) - changed = true; - a.update_last_draw_time(); - } -- foreach(animated<image::locator>& a, btile.images_foreground) { -+ BOOST_FOREACH(animated<image::locator>& a, btile.images_foreground) { - if(a.need_update()) - changed = true; - a.update_last_draw_time(); -@@ -326,7 +327,7 @@ - } - std::vector<std::string> vars = utils::split(variations, ';', 0); - -- foreach(const std::string& v, vars){ -+ BOOST_FOREACH(const std::string& v, vars){ - res.push_back(base); - std::string::size_type pos = 0; - while ((pos = res.back().find("@V", pos)) != std::string::npos) { -@@ -345,21 +346,21 @@ - - // Parse images and animations data - // If one is not valid, return false. -- foreach(terrain_constraint &constraint, rule.constraints) -+ BOOST_FOREACH(terrain_constraint &constraint, rule.constraints) - { -- foreach(rule_image& ri, constraint.images) -+ BOOST_FOREACH(rule_image& ri, constraint.images) - { -- foreach(rule_image_variant& variant, ri.variants) -+ BOOST_FOREACH(rule_image_variant& variant, ri.variants) - { - - std::vector<std::string> var_strings = get_variations(variant.image_string, variant.variations); -- foreach(const std::string& var, var_strings) -+ BOOST_FOREACH(const std::string& var, var_strings) - { - /** @todo improve this, 99% of terrains are not animated. */ - std::vector<std::string> frames = utils::parenthetical_split(var,','); - animated<image::locator> res; - -- foreach(const std::string& frame, frames) -+ BOOST_FOREACH(const std::string& frame, frames) - { - const std::vector<std::string> items = utils::split(frame, ':'); - const std::string& str = items.front(); -@@ -499,7 +500,7 @@ - void terrain_builder::replace_rotate_tokens(rule_image &image, int angle, - const std::vector<std::string> &replacement) - { -- foreach(rule_image_variant& variant, image.variants) { -+ BOOST_FOREACH(rule_image_variant& variant, image.variants) { - replace_rotate_tokens(variant, angle, replacement); - } - } -@@ -507,7 +508,7 @@ - void terrain_builder::replace_rotate_tokens(rule_imagelist &list, int angle, - const std::vector<std::string> &replacement) - { -- foreach (rule_image &img, list) { -+ BOOST_FOREACH(rule_image &img, list) { - replace_rotate_tokens(img, angle, replacement); - } - } -@@ -515,16 +516,16 @@ - void terrain_builder::replace_rotate_tokens(building_rule &rule, int angle, - const std::vector<std::string> &replacement) - { -- foreach (terrain_constraint &cons, rule.constraints) -+ BOOST_FOREACH(terrain_constraint &cons, rule.constraints) - { - // Transforms attributes -- foreach (std::string &flag, cons.set_flag) { -+ BOOST_FOREACH(std::string &flag, cons.set_flag) { - replace_rotate_tokens(flag, angle, replacement); - } -- foreach (std::string &flag, cons.no_flag) { -+ BOOST_FOREACH(std::string &flag, cons.no_flag) { - replace_rotate_tokens(flag, angle, replacement); - } -- foreach (std::string &flag, cons.has_flag) { -+ BOOST_FOREACH(std::string &flag, cons.has_flag) { - replace_rotate_tokens(flag, angle, replacement); - } - replace_rotate_tokens(cons.images, angle, replacement); -@@ -541,7 +542,7 @@ - return; - } - -- foreach (terrain_constraint &cons, ret.constraints) { -+ BOOST_FOREACH(terrain_constraint &cons, ret.constraints) { - rotate(cons, angle); - } - -@@ -549,7 +550,7 @@ - int minx = INT_MAX; - int miny = INT_MAX; - -- foreach (const terrain_constraint &cons, ret.constraints) { -+ BOOST_FOREACH(const terrain_constraint &cons, ret.constraints) { - minx = std::min<int>(cons.loc.x, minx); - miny = std::min<int>(2 * cons.loc.y + (cons.loc.x & 1), miny); - } -@@ -559,7 +560,7 @@ - if(!(miny & 1) && (minx & 1) && (minx > 0)) - miny -= 2; - -- foreach (terrain_constraint &cons, ret.constraints) { -+ BOOST_FOREACH(terrain_constraint &cons, ret.constraints) { - cons.loc.legacy_sum_assign(map_location(-minx, -((miny - 1) / 2))); - } - -@@ -581,7 +582,7 @@ - - void terrain_builder::add_images_from_config(rule_imagelist& images, const config &cfg, bool global, int dx, int dy) - { -- foreach (const config &img, cfg.child_range("image")) -+ BOOST_FOREACH(const config &img, cfg.child_range("image")) - { - int layer = img["layer"]; - -@@ -606,7 +607,7 @@ - images.push_back(rule_image(layer, basex - dx, basey - dy, global, center_x, center_y)); - - // Adds the other variants of the image -- foreach (const config &variant, img.child_range("variant")) -+ BOOST_FOREACH(const config &variant, img.child_range("variant")) - { - const std::string &name = variant["name"]; - const std::string &variations = img["variations"]; -@@ -631,7 +632,7 @@ - const t_translation::t_match& type, const config& global_images) - { - terrain_constraint *cons = NULL; -- foreach (terrain_constraint &c, constraints) { -+ BOOST_FOREACH(terrain_constraint &c, constraints) { - if (c.loc == loc) { - cons = &c; - break; -@@ -769,7 +770,7 @@ - log_scope("terrain_builder::parse_config"); - - // Parses the list of building rules (BRs) -- foreach (const config &br, cfg.child_range("terrain_graphics")) -+ BOOST_FOREACH(const config &br, cfg.child_range("terrain_graphics")) - { - building_rule pbr; // Parsed Building rule - pbr.local = local; -@@ -788,7 +789,7 @@ - parse_mapstring(br["map"], pbr, anchors, br); - - // Parses the terrain constraints (TCs) -- foreach (const config &tc, br.child_range("tile")) -+ BOOST_FOREACH(const config &tc, br.child_range("tile")) - { - // Adds the terrain constraint to the current built terrain's list - // of terrain constraints, if it does not exist. -@@ -831,7 +832,7 @@ - const std::vector<std::string> global_has_flag = utils::split(br["has_flag"]); - const std::vector<std::string> global_set_no_flag = utils::split(br["set_no_flag"]); - -- foreach (terrain_constraint &constraint, pbr.constraints) -+ BOOST_FOREACH(terrain_constraint &constraint, pbr.constraints) - { - constraint.set_flag.insert(constraint.set_flag.end(), - global_set_flag.begin(), global_set_flag.end()); -@@ -925,7 +926,7 @@ - } - } - -- foreach (const terrain_constraint &cons, rule.constraints) -+ BOOST_FOREACH(const terrain_constraint &cons, rule.constraints) - { - // Translated location - const map_location tloc = loc.legacy_sum(cons.loc); -@@ -943,13 +944,13 @@ - - const std::set<std::string> &flags = tile_map_[tloc].flags; - -- foreach (const std::string &s, cons.no_flag) { -+ BOOST_FOREACH(const std::string &s, cons.no_flag) { - // If a flag listed in "no_flag" is present, the rule does not match - if (flags.find(s) != flags.end()) { - return false; - } - } -- foreach (const std::string &s, cons.has_flag) { -+ BOOST_FOREACH(const std::string &s, cons.has_flag) { - // If a flag listed in "has_flag" is not present, this rule does not match - if (flags.find(s) == flags.end()) { - return false; -@@ -964,7 +965,7 @@ - { - unsigned int rand_seed = get_noise(loc, rule.get_hash()); - -- foreach (const terrain_constraint &constraint, rule.constraints) -+ BOOST_FOREACH(const terrain_constraint &constraint, rule.constraints) - { - const map_location tloc = loc.legacy_sum(constraint.loc); - if(!tile_map_.on_map(tloc)) { -@@ -973,12 +974,12 @@ - - tile& btile = tile_map_[tloc]; - -- foreach (const rule_image &img, constraint.images) { -+ BOOST_FOREACH(const rule_image &img, constraint.images) { - btile.images.push_back(tile::rule_image_rand(&img, rand_seed)); - } - - // Sets flags -- foreach (const std::string &flag, constraint.set_flag) { -+ BOOST_FOREACH(const std::string &flag, constraint.set_flag) { - btile.flags.insert(flag); - } - -@@ -1001,9 +1002,9 @@ - if(hash_ != DUMMY_HASH) - return hash_; - -- foreach(const terrain_constraint &constraint, constraints) { -- foreach(const rule_image& ri, constraint.images) { -- foreach(const rule_image_variant& variant, ri.variants) { -+ BOOST_FOREACH(const terrain_constraint &constraint, constraints) { -+ BOOST_FOREACH(const rule_image& ri, constraint.images) { -+ BOOST_FOREACH(const rule_image_variant& variant, ri.variants) { - // we will often hash the same string, but that seems fast enough - hash_ += hash_str(variant.image_string); - } -@@ -1031,7 +1032,7 @@ - } - } - -- foreach (const building_rule &rule, building_rules_) -+ BOOST_FOREACH(const building_rule &rule, building_rules_) - { - // Find the constraint that contains the less terrain of all terrain rules. - // We will keep a track of the matching terrains of this constraint -@@ -1040,7 +1041,7 @@ - t_translation::t_list min_types; - const terrain_constraint *min_constraint = NULL; - -- foreach (const terrain_constraint &constraint, rule.constraints) -+ BOOST_FOREACH(const terrain_constraint &constraint, rule.constraints) - { - const t_translation::t_match& match = constraint.terrain_types_match; - t_translation::t_list matching_types; -Index: src/game_config.cpp -=================================================================== ---- src/game_config.cpp (revision 54624) -+++ src/game_config.cpp (revision 54625) -@@ -18,7 +18,6 @@ - - #include "color_range.hpp" - #include "config.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "log.hpp" - #include "util.hpp" -@@ -29,6 +28,8 @@ - #include "revision.hpp" - #endif /* HAVE_REVISION */ - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define DBG_NG LOG_STREAM(debug, log_engine) - #define ERR_NG LOG_STREAM(err, log_engine) -@@ -259,7 +260,7 @@ - } - - server_list.clear(); -- foreach (const config &server, v.child_range("server")) -+ BOOST_FOREACH(const config &server, v.child_range("server")) - { - server_info sinf; - sinf.name = server["name"].str(); -@@ -270,7 +271,7 @@ - - void add_color_info(const config &v) - { -- foreach (const config &teamC, v.child_range("color_range")) -+ BOOST_FOREACH(const config &teamC, v.child_range("color_range")) - { - const config::attribute_value *a1 = teamC.get("id"), - *a2 = teamC.get("rgb"); -@@ -304,9 +305,9 @@ - DBG_NG << str.str() << '\n'; - } - -- foreach (const config &cp, v.child_range("color_palette")) -+ BOOST_FOREACH(const config &cp, v.child_range("color_palette")) - { -- foreach (const config::attribute &rgb, cp.attribute_range()) -+ BOOST_FOREACH(const config::attribute &rgb, cp.attribute_range()) - { - std::vector<Uint32> temp; - if(!string2rgb(rgb.second, temp)) { -Index: src/whiteboard/recall.cpp -=================================================================== ---- src/whiteboard/recall.cpp (revision 54624) -+++ src/whiteboard/recall.cpp (revision 54625) -@@ -24,7 +24,6 @@ - #include "utility.hpp" - #include "visitor.hpp" - --#include "foreach.hpp" - #include "game_display.hpp" - #include "menu_events.hpp" - #include "play_controller.hpp" -@@ -32,6 +31,8 @@ - #include "team.hpp" - #include "unit.hpp" - -+#include <boost/foreach.hpp> -+ - namespace wb - { - -@@ -71,7 +72,7 @@ - { - // Construct and validate temp_unit_ - size_t underlying_id = cfg["temp_unit_"]; -- foreach(unit const& recall_unit, resources::teams->at(team_index()).recall_list()) -+ BOOST_FOREACH(unit const& recall_unit, resources::teams->at(team_index()).recall_list()) - { - if(recall_unit.underlying_id()==underlying_id) - { -Index: src/whiteboard/utility.cpp -=================================================================== ---- src/whiteboard/utility.cpp (revision 54624) -+++ src/whiteboard/utility.cpp (revision 54625) -@@ -22,7 +22,6 @@ - #include "manager.hpp" - - #include "actions.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "map.hpp" - #include "play_controller.hpp" -@@ -30,6 +29,8 @@ - #include "team.hpp" - #include "unit.hpp" - -+#include <boost/foreach.hpp> -+ - namespace wb { - - size_t viewer_team() -@@ -60,7 +61,7 @@ - { - assert(leader.can_recruit()); - assert(resources::game_map->is_keep(leader.get_location())); -- foreach(unit const& unit, *resources::units) -+ BOOST_FOREACH(unit const& unit, *resources::units) - { - if (unit.can_recruit() && - resources::game_map->is_keep(unit.get_location()) && -@@ -83,7 +84,7 @@ - if(!map.is_castle(hex)) - return NULL; - -- foreach(unit& u, *resources::units) -+ BOOST_FOREACH(unit& u, *resources::units) - if(u.can_recruit() - && u.side() == static_cast<int>(team_index+1) - && can_recruit_on(map,u.get_location(),hex)) -@@ -124,7 +125,7 @@ - - int result = 0; - gamemap const& map = *resources::game_map; -- foreach(map_location const& loc, std::make_pair(path.begin()+1,path.end())) -+ BOOST_FOREACH(map_location const& loc, std::make_pair(path.begin()+1,path.end())) - result += u.movement_cost(map[loc]); - return result; - } -@@ -149,7 +150,7 @@ - - bool has_actions() - { -- foreach(team& t, *resources::teams) -+ BOOST_FOREACH(team& t, *resources::teams) - if (!t.get_side_actions()->empty()) - return true; - -Index: src/whiteboard/visitor.hpp -=================================================================== ---- src/whiteboard/visitor.hpp (revision 54624) -+++ src/whiteboard/visitor.hpp (revision 54625) -@@ -33,11 +33,11 @@ - #include "action.hpp" - #include "side_actions.hpp" - --#include "foreach.hpp" - #include "play_controller.hpp" - #include "resources.hpp" - - #include <boost/noncopyable.hpp> -+#include <boost/foreach.hpp> - - namespace wb - { -@@ -81,7 +81,7 @@ - - //Determine how many turns' worth of plans there are - size_t max_turns = 0; -- foreach(team& t, *resources::teams) -+ BOOST_FOREACH(team& t, *resources::teams) - max_turns = std::max(max_turns,t.get_side_actions()->num_turns()); - - size_t const current_team = resources::controller->current_side() - 1; -Index: src/whiteboard/side_actions.cpp -=================================================================== ---- src/whiteboard/side_actions.cpp (revision 54624) -+++ src/whiteboard/side_actions.cpp (revision 54625) -@@ -31,12 +31,13 @@ - #include "validate_visitor.hpp" - - #include "actions.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_end_exceptions.hpp" - #include "map.hpp" - #include "resources.hpp" - -+#include <boost/foreach.hpp> -+ - #include <set> - #include <sstream> - -@@ -48,13 +49,13 @@ - { - s << "Content of side_actions:"; - int turn = 1; -- foreach(action_queue const& turn_queue, side_actions.actions()) -+ BOOST_FOREACH(action_queue const& turn_queue, side_actions.actions()) - { - s << "\n Turn " << turn; - ++turn; - - int count = 1; -- foreach(action_ptr const& action, turn_queue) -+ BOOST_FOREACH(action_ptr const& action, turn_queue) - { - s << "\n (" << count << ") " << action; - ++count; -@@ -114,7 +115,7 @@ - main_number = index; - } - -- foreach(weak_action_ptr action, highlighter->get_secondary_highlights()) -+ BOOST_FOREACH(weak_action_ptr action, highlighter->get_secondary_highlights()) - { - if (action.lock() == *it) - { -@@ -199,7 +200,7 @@ - size_t side_actions::size() const - { - size_t result = 0; -- foreach(action_queue const& queue, actions_) -+ BOOST_FOREACH(action_queue const& queue, actions_) - result += queue.size(); - return result; - } -@@ -234,7 +235,7 @@ - return; - } - -- foreach(action_ptr act, *this) -+ BOOST_FOREACH(action_ptr act, *this) - act->hide(); - } - void side_actions::show() -@@ -244,7 +245,7 @@ - - hidden_ = false; - -- foreach(action_ptr act, *this) -+ BOOST_FOREACH(action_ptr act, *this) - act->show(); - } - -@@ -507,7 +508,7 @@ - size_t side_actions::count_actions_of(unit const* unit) - { - size_t count = 0; -- foreach(action_ptr action, *this) -+ BOOST_FOREACH(action_ptr action, *this) - { - if (action->get_unit() == unit) - { -@@ -783,7 +784,7 @@ - else if(type=="refresh") - { - safe_clear(); -- foreach(net_cmd const& sub_cmd, cmd.child_range("net_cmd")) -+ BOOST_FOREACH(net_cmd const& sub_cmd, cmd.child_range("net_cmd")) - execute_net_cmd(sub_cmd); - } - else -@@ -890,7 +891,7 @@ - - //find units who still have plans for turn 0 (i.e. were too lazy to finish their jobs) - std::set<unit const*> lazy_units; -- foreach(action_ptr const& act, iter_turn(0)) -+ BOOST_FOREACH(action_ptr const& act, iter_turn(0)) - { - unit const* u = act->get_unit(); - if(u) -@@ -913,7 +914,7 @@ - } - - //push any remaining first-turn plans into the second turn -- foreach(action_ptr act, actions_.front()) -+ BOOST_FOREACH(action_ptr act, actions_.front()) - actions_[1].push_front(act); - actions_.front().clear(); - -Index: src/whiteboard/move.cpp -=================================================================== ---- src/whiteboard/move.cpp (revision 54624) -+++ src/whiteboard/move.cpp (revision 54625) -@@ -26,7 +26,6 @@ - - #include "arrow.hpp" - #include "config.hpp" --#include "foreach.hpp" - #include "game_end_exceptions.hpp" - #include "mouse_events.hpp" - #include "play_controller.hpp" -@@ -37,6 +36,8 @@ - #include "unit_display.hpp" - #include "unit_map.hpp" - -+#include <boost/foreach.hpp> -+ - namespace wb { - - std::ostream& operator<<(std::ostream &s, move_ptr move) -@@ -108,10 +109,10 @@ - if(!route_cfg) - throw action::ctor_err("move: Invalid route_"); - route_->move_cost = route_cfg["move_cost"]; -- foreach(config const& loc_cfg, route_cfg.child_range("step")) { -+ BOOST_FOREACH(config const& loc_cfg, route_cfg.child_range("step")) { - route_->steps.push_back(map_location(loc_cfg["x"],loc_cfg["y"])); - } -- foreach(config const& mark_cfg, route_cfg.child_range("mark")) { -+ BOOST_FOREACH(config const& mark_cfg, route_cfg.child_range("mark")) { - route_->marks[map_location(mark_cfg["x"],mark_cfg["y"])] - = pathfind::marked_route::mark(mark_cfg["turns"],mark_cfg["zoc"],mark_cfg["capture"],mark_cfg["invisible"]); - } -@@ -470,7 +471,7 @@ - //Serialize route_ - config route_cfg; - route_cfg["move_cost"]=route_->move_cost; -- foreach(map_location const& loc, route_->steps) -+ BOOST_FOREACH(map_location const& loc, route_->steps) - { - config loc_cfg; - loc_cfg["x"]=loc.x; -@@ -478,7 +479,7 @@ - route_cfg.add_child("step",loc_cfg); - } - typedef std::pair<map_location,pathfind::marked_route::mark> pair_loc_mark; -- foreach(pair_loc_mark const& item, route_->marks) -+ BOOST_FOREACH(pair_loc_mark const& item, route_->marks) - { - config mark_cfg; - mark_cfg["x"]=item.first.x; -Index: src/whiteboard/validate_visitor.cpp -=================================================================== ---- src/whiteboard/validate_visitor.cpp (revision 54624) -+++ src/whiteboard/validate_visitor.cpp (revision 54625) -@@ -28,12 +28,13 @@ - #include "utility.hpp" - - #include "arrow.hpp" --#include "foreach.hpp" - #include "pathfind/pathfind.hpp" - #include "play_controller.hpp" - #include "resources.hpp" - #include "team.hpp" - -+#include <boost/foreach.hpp> -+ - namespace wb - { - -@@ -60,7 +61,7 @@ - { - int side_actions_size_before = viewer_actions_.size(); - LOG_WB << "Erasing " << actions_to_erase_.size() << " invalid actions.\n"; -- foreach(action_ptr action, actions_to_erase_) -+ BOOST_FOREACH(action_ptr action, actions_to_erase_) - { - viewer_actions_.remove_action(viewer_actions_.get_position_of(action), false); - } -Index: src/whiteboard/manager.cpp -=================================================================== ---- src/whiteboard/manager.cpp (revision 54624) -+++ src/whiteboard/manager.cpp (revision 54625) -@@ -32,7 +32,6 @@ - #include "actions.hpp" - #include "arrow.hpp" - #include "chat_events.hpp" --#include "foreach.hpp" - #include "formula_string_utils.hpp" - #include "game_preferences.hpp" - #include "gettext.hpp" -@@ -47,6 +46,8 @@ - #include "unit_display.hpp" - - #include <boost/lexical_cast.hpp> -+#include <boost/foreach.hpp> -+ - #include <sstream> - - namespace wb { -@@ -268,7 +269,7 @@ - } - - //Look for planned recruits that depend on this leader -- foreach(action_const_ptr action, *viewer_actions()) -+ BOOST_FOREACH(action_const_ptr action, *viewer_actions()) - { - recruit_const_ptr recruit = boost::dynamic_pointer_cast<class recruit const>(action); - recall_const_ptr recall = boost::dynamic_pointer_cast<class recall const>(action); -@@ -332,7 +333,7 @@ - - static void hide_all_plans() - { -- foreach(team& t, *resources::teams) -+ BOOST_FOREACH(team& t, *resources::teams) - t.get_side_actions()->hide(); - } - -@@ -344,7 +345,7 @@ - hide_all_plans(); - else //< normal circumstance - { -- foreach(team& t, *resources::teams) -+ BOOST_FOREACH(team& t, *resources::teams) - { - //make sure only appropriate teams are hidden - if(!t.is_network_human()) -@@ -498,7 +499,7 @@ - if (can_modify_game_state() && has_actions()) - { - units_owning_moves_ = move_owners_finder().get_units_owning_moves(); -- foreach(size_t unit_id, units_owning_moves_) -+ BOOST_FOREACH(size_t unit_id, units_owning_moves_) - { - unit_map::iterator unit_iter = resources::units->find(unit_id); - assert(unit_iter.valid()); -@@ -509,7 +510,7 @@ - - void manager::post_draw() - { -- foreach(size_t unit_id, units_owning_moves_) -+ BOOST_FOREACH(size_t unit_id, units_owning_moves_) - { - unit_map::iterator unit_iter = resources::units->find(unit_id); - if (unit_iter.valid()) { -@@ -558,7 +559,7 @@ - - //Info about the action numbers to be displayed on screen. - side_actions::numbers_t numbers; -- foreach(team& t, *resources::teams) -+ BOOST_FOREACH(team& t, *resources::teams) - { - side_actions& sa = *t.get_side_actions(); - if(!sa.hidden()) -@@ -571,7 +572,7 @@ - - void manager::on_mouseover_change(const map_location& hex) - { -- foreach(map_location const& hex, hidden_unit_hexes_) -+ BOOST_FOREACH(map_location const& hex, hidden_unit_hexes_) - resources::screen->remove_exclusive_draw(hex); - hidden_unit_hexes_.clear(); - -@@ -636,7 +637,7 @@ - LOG_WB << "Received wb data (" << count << ").\n"; - - team& team_from = resources::teams->at(wb_cfg["side"]-1); -- foreach(side_actions::net_cmd const& cmd, wb_cfg.child_range("net_cmd")) -+ BOOST_FOREACH(side_actions::net_cmd const& cmd, wb_cfg.child_range("net_cmd")) - team_from.get_side_actions()->execute_net_cmd(cmd); - } - } -@@ -1138,7 +1139,7 @@ - options.push_back(_("HIDE ALL allies’ plans")); - - //populate list of networked allies -- foreach(team &t, *resources::teams) -+ BOOST_FOREACH(team &t, *resources::teams) - { - //Exclude enemies, AIs, and local players - if(t.is_enemy(v_side) || !t.is_network()) -@@ -1164,11 +1165,11 @@ - switch(selection) - { - case 0: -- foreach(team* t, allies) -+ BOOST_FOREACH(team* t, allies) - team_plans_hidden_[t->side()-1]=false; - break; - case 1: -- foreach(team* t, allies) -+ BOOST_FOREACH(team* t, allies) - team_plans_hidden_[t->side()-1]=true; - break; - default: -Index: src/whiteboard/suppose_dead.cpp -=================================================================== ---- src/whiteboard/suppose_dead.cpp (revision 54624) -+++ src/whiteboard/suppose_dead.cpp (revision 54625) -@@ -26,7 +26,6 @@ - - #include "arrow.hpp" - #include "config.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_end_exceptions.hpp" - #include "mouse_events.hpp" -Index: src/whiteboard/mapbuilder.cpp -=================================================================== ---- src/whiteboard/mapbuilder.cpp (revision 54624) -+++ src/whiteboard/mapbuilder.cpp (revision 54625) -@@ -24,12 +24,13 @@ - #include "side_actions.hpp" - #include "utility.hpp" - --#include "foreach.hpp" - #include "play_controller.hpp" - #include "resources.hpp" - #include "unit.hpp" - #include "unit_map.hpp" - -+#include <boost/foreach.hpp> -+ - namespace wb - { - -@@ -51,14 +52,14 @@ - - void mapbuilder::pre_build() - { -- foreach(team& t, *resources::teams) -+ BOOST_FOREACH(team& t, *resources::teams) - { - //Reset spent gold to zero, it'll be recalculated during the map building - t.get_side_actions()->reset_gold_spent(); - } - - int current_side = resources::controller->current_side(); -- foreach(unit& u, *resources::units) -+ BOOST_FOREACH(unit& u, *resources::units) - { - bool on_current_side = (u.side() == current_side); - -Index: src/whiteboard/highlight_visitor.cpp -=================================================================== ---- src/whiteboard/highlight_visitor.cpp (revision 54624) -+++ src/whiteboard/highlight_visitor.cpp (revision 54625) -@@ -29,11 +29,12 @@ - #include "suppose_dead.hpp" - - #include "arrow.hpp" --#include "foreach.hpp" - #include "play_controller.hpp" - #include "resources.hpp" - #include "unit_map.hpp" - -+#include <boost/foreach.hpp> -+ - namespace wb - { - -@@ -147,7 +148,7 @@ - { - //Highlight secondary highlights - mode_ = HIGHLIGHT_SECONDARY; -- foreach(weak_action_ptr weak, secondary_highlights_) -+ BOOST_FOREACH(weak_action_ptr weak, secondary_highlights_) - { - if (action_ptr action = weak.lock()) - { -@@ -169,7 +170,7 @@ - - //unhighlight secondary highlights - mode_ = UNHIGHLIGHT_SECONDARY; -- foreach(weak_action_ptr weak, secondary_highlights_) -+ BOOST_FOREACH(weak_action_ptr weak, secondary_highlights_) - { - if (action_ptr action = weak.lock()) - { -@@ -178,7 +179,7 @@ - } - - //unhide other units if needed -- foreach(map_location hex, exclusive_display_hexes_) -+ BOOST_FOREACH(map_location hex, exclusive_display_hexes_) - { - resources::screen->remove_exclusive_draw(hex); - } -Index: src/language.cpp -=================================================================== ---- src/language.cpp (revision 54624) -+++ src/language.cpp (revision 54625) -@@ -16,7 +16,6 @@ - #include "global.hpp" - - #include "filesystem.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "language.hpp" - #include "log.hpp" -@@ -27,6 +26,7 @@ - #include <stdexcept> - #include <clocale> - #include <boost/scoped_array.hpp> -+#include <boost/foreach.hpp> - - #ifdef _WIN32 - #include <windows.h> -@@ -101,7 +101,7 @@ - known_languages.push_back( - language_def("", t_string(N_("System default language"), "wesnoth"), "ltr", "", "A")); - -- foreach (const config &lang, cfg.child_range("locale")) -+ BOOST_FOREACH(const config &lang, cfg.child_range("locale")) - { - known_languages.push_back( - language_def(lang["locale"], lang["name"], lang["dir"], -@@ -226,9 +226,9 @@ - std::cerr << "No [language] block found\n"; - return false; - } -- foreach (const config &lang, languages_) { -+ BOOST_FOREACH(const config &lang, languages_) { - DBG_G << "[language]\n"; -- foreach (const config::attribute &j, lang.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &j, lang.attribute_range()) { - DBG_G << j.first << "=\"" << j.second << "\"\n"; - strings_[j.first] = j.second; - } -@@ -283,7 +283,7 @@ - - void init_textdomains(const config& cfg) - { -- foreach (const config &t, cfg.child_range("textdomain")) -+ BOOST_FOREACH(const config &t, cfg.child_range("textdomain")) - { - const std::string &name = t["name"]; - const std::string &path = t["path"]; -@@ -307,7 +307,7 @@ - bool init_strings(const config& cfg) - { - languages_.clear(); -- foreach(const config &l, cfg.child_range("language")) { -+ BOOST_FOREACH(const config &l, cfg.child_range("language")) { - languages_.push_back(l); - } - return load_strings(true); -Index: src/multiplayer_lobby.cpp -=================================================================== ---- src/multiplayer_lobby.cpp (revision 54624) -+++ src/multiplayer_lobby.cpp (revision 54625) -@@ -20,7 +20,6 @@ - #include "global.hpp" - - #include "filesystem.hpp" --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "lobby_preferences.hpp" - #include "map_exception.hpp" -@@ -34,6 +33,8 @@ - #include "wml_exception.hpp" - #include "formula_string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_config("config"); - #define ERR_CF LOG_STREAM(err, log_config) - -@@ -424,7 +425,7 @@ - - games_.clear(); - -- foreach (const config &game, cfg.child("gamelist").child_range("game")) -+ BOOST_FOREACH(const config &game, cfg.child("gamelist").child_range("game")) - { - bool verified = true; - games_.push_back(game_item()); -@@ -502,7 +503,7 @@ - if (map_hashes_ && !games_.back().reloaded) { - std::string hash = game["hash"]; - bool hash_found = false; -- foreach (const config::attribute &i, map_hashes_.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, map_hashes_.attribute_range()) { - if (i.first == game["mp_scenario"] && i.second == hash) { - hash_found = true; - break; -@@ -639,7 +640,7 @@ - - if(preferences::fi_friends_in_game()) { - bool found_friend = false; -- foreach(const config &user, cfg.child_range("user")) { -+ BOOST_FOREACH(const config &user, cfg.child_range("user")) { - if(preferences::is_friend(user["name"]) && user["game_id"] == i.id) { - found_friend = true; - break; -@@ -650,7 +651,7 @@ - - if(!preferences::fi_text().empty()) { - bool found_match = true; -- foreach(const std::string& search_string, utils::split(preferences::fi_text(), ' ', utils::STRIP_SPACES)) { -+ BOOST_FOREACH(const std::string& search_string, utils::split(preferences::fi_text(), ' ', utils::STRIP_SPACES)) { - if(std::search(i.map_info.begin(), i.map_info.end(), search_string.begin(), search_string.end(), chars_equal_insensitive) == i.map_info.end() && - std::search(i.name.begin(), i.name.end(), search_string.begin(), search_string.end(), chars_equal_insensitive) == i.name.end()) { - found_match = false; -Index: src/reports.cpp -=================================================================== ---- src/reports.cpp (revision 54624) -+++ src/reports.cpp (revision 54625) -@@ -20,7 +20,6 @@ - #include "editor/editor_controller.hpp" - #include "editor/editor_palettes.hpp" - #include "font.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_preferences.hpp" - #include "gettext.hpp" -@@ -36,6 +35,7 @@ - #include "unit.hpp" - #include "whiteboard/manager.hpp" - -+#include <boost/foreach.hpp> - - #include <cassert> - #include <ctime> -@@ -260,7 +260,7 @@ - if (!u) return report(); - config res; - typedef std::pair<std::string, std::string> pair_string; -- foreach(const pair_string &ps, u->amla_icons()) { -+ BOOST_FOREACH(const pair_string &ps, u->amla_icons()) { - add_image(res, ps.first, ps.second); - } - return res; -@@ -395,7 +395,7 @@ - - bool att_def_diff = false; - map_location displayed_unit_hex = resources::screen->displayed_unit_hex(); -- foreach (const utils::string_map::value_type &resist, u->get_base_resistances()) -+ BOOST_FOREACH(const utils::string_map::value_type &resist, u->get_base_resistances()) - { - std::ostringstream line; - line << gettext(resist.first.c_str()) << ": "; -@@ -415,7 +415,7 @@ - if (att_def_diff) - tooltip << _("(Att / Def)"); - tooltip << '\n'; -- foreach (const std::string &line, resistances_table) { -+ BOOST_FOREACH(const std::string &line, resistances_table) { - tooltip << line; - } - return text_report(str.str(), tooltip.str()); -@@ -458,7 +458,7 @@ - if (!u) return report(); - config res; - typedef std::pair<std::string, std::string> pair_string; -- foreach (const pair_string &ps, u->advancement_icons()) { -+ BOOST_FOREACH(const pair_string &ps, u->advancement_icons()) { - add_image(res, ps.first, ps.second); - } - return res; -@@ -497,7 +497,7 @@ - bool revert = false; - if (underlyings.size() != 1 || underlyings.front() != terrain) - { -- foreach (const t_translation::t_terrain &t, underlyings) -+ BOOST_FOREACH(const t_translation::t_terrain &t, underlyings) - { - if (t == t_translation::MINUS) { - revert = true; -@@ -641,7 +641,7 @@ - std::set<std::string> seen_types; - const team &unit_team = (*resources::teams)[u->side() - 1]; - const team &viewing_team = (*resources::teams)[resources::screen->viewing_team()]; -- foreach(const unit &enemy, *resources::units) -+ BOOST_FOREACH(const unit &enemy, *resources::units) - { - if (!unit_team.is_enemy(enemy.side())) - continue; -@@ -662,7 +662,7 @@ - damage_multiplier += tod_bonus; - - typedef std::pair<int, std::set<std::string> > resist_units; -- foreach (const resist_units &resist, resistances) { -+ BOOST_FOREACH(const resist_units &resist, resistances) { - int damage = round_damage(base_damage, damage_multiplier * resist.first, damage_divisor); - tooltip << "<b>" << damage << "</b> " - << "<i>(" << utils::signed_percent(resist.first-100) << ")</i> : " -@@ -755,7 +755,7 @@ - } - } - -- foreach(const battle_context& weapon, weapons) { -+ BOOST_FOREACH(const battle_context& weapon, weapons) { - - // Predict the battle outcome. - combatant attacker_combatant(weapon.get_attacker_stats()); -@@ -869,7 +869,7 @@ - map_location displayed_unit_hex = resources::screen->displayed_unit_hex(); - config res; - -- foreach (const attack_type &at, u->attacks()) -+ BOOST_FOREACH(const attack_type &at, u->attacks()) - { - attack_info(at, res, u, displayed_unit_hex); - } -@@ -1023,7 +1023,7 @@ - str << td.villages << '/'; - if (viewing_team.uses_shroud()) { - int unshrouded_villages = 0; -- foreach (const map_location &loc, resources::game_map->villages()) { -+ BOOST_FOREACH(const map_location &loc, resources::game_map->villages()) { - if (!viewing_team.shrouded(loc)) - ++unshrouded_villages; - } -@@ -1178,7 +1178,7 @@ - - std::ostringstream str; - str << _("Observers:") << '\n'; -- foreach (const std::string &obs, observers) { -+ BOOST_FOREACH(const std::string &obs, observers) { - str << obs << '\n'; - } - return image_report(game_config::images::observer, str.str()); -@@ -1250,7 +1250,7 @@ - - void reports::reset_generators() - { -- foreach (dynamic_report_generators::value_type &rg, dynamic_generators) { -+ BOOST_FOREACH(dynamic_report_generators::value_type &rg, dynamic_generators) { - delete rg.second; - } - dynamic_generators.clear(); -@@ -1283,10 +1283,10 @@ - const std::set<std::string> &reports::report_list() - { - if (!all_reports.empty()) return all_reports; -- foreach (const static_report_generators::value_type &v, static_generators) { -+ BOOST_FOREACH(const static_report_generators::value_type &v, static_generators) { - all_reports.insert(v.first); - } -- foreach (const dynamic_report_generators::value_type &v, dynamic_generators) { -+ BOOST_FOREACH(const dynamic_report_generators::value_type &v, dynamic_generators) { - all_reports.insert(v.first); - } - return all_reports; -Index: src/playmp_controller.cpp -=================================================================== ---- src/playmp_controller.cpp (revision 54624) -+++ src/playmp_controller.cpp (revision 54625) -@@ -17,7 +17,7 @@ - #include "playmp_controller.hpp" - - #include "dialogs.hpp" --#include "foreach.hpp" -+ - #include "game_end_exceptions.hpp" - #include "gettext.hpp" - #include "log.hpp" -@@ -29,6 +29,8 @@ - #include "formula_string_utils.hpp" - #include "whiteboard/manager.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define LOG_NG LOG_STREAM(info, log_engine) - -@@ -326,7 +328,7 @@ - // stay stuck in linger state when the *next* scenario is over. - gamestate_.classification().completion = "running"; - // End all unit moves -- foreach (unit &u, units_) { -+ BOOST_FOREACH(unit &u, units_) { - u.set_user_end_turn(true); - } - //current_team().set_countdown_time(0); -Index: src/tests/gui/test_gui2.cpp -=================================================================== ---- src/tests/gui/test_gui2.cpp (revision 54624) -+++ src/tests/gui/test_gui2.cpp (revision 54625) -@@ -20,7 +20,6 @@ - - #include "config_cache.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "formula_debugger.hpp" - #include "gettext.hpp" - #include "game_config.hpp" -@@ -66,6 +65,7 @@ - #include "wml_exception.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #include <memory> - -@@ -139,7 +139,7 @@ - template<class T> - void test_resolutions(const tresolution_list& resolutions) - { -- foreach(const tresolution& resolution, resolutions) { -+ BOOST_FOREACH(const tresolution& resolution, resolutions) { - video().make_test_fake(resolution.first, resolution.second); - - boost::scoped_ptr<gui2::tdialog> dlg(twrapper<T>::create()); -@@ -178,7 +178,7 @@ - { - bool interact = false; - for(int i = 0; i < 2; ++i) { -- foreach(const tresolution& resolution, resolutions) { -+ BOOST_FOREACH(const tresolution& resolution, resolutions) { - video().make_test_fake(resolution.first, resolution.second); - - boost::scoped_ptr<gui2::tpopup> dlg(twrapper<T>::create()); -@@ -225,7 +225,7 @@ - void test_tip_resolutions(const tresolution_list& resolutions - , const std::string& id) - { -- foreach(const tresolution& resolution, resolutions) { -+ BOOST_FOREACH(const tresolution& resolution, resolutions) { - video().make_test_fake(resolution.first, resolution.second); - - std::vector<std::string>& list = -@@ -416,7 +416,7 @@ - - // Test size() instead of empty() to get the number of offenders - BOOST_CHECK_EQUAL(list.size(), 0); -- foreach(const std::string& id, list) { -+ BOOST_FOREACH(const std::string& id, list) { - std::cerr << "Window '" << id << "' registered but not tested.\n"; - } - } -@@ -638,7 +638,7 @@ - BOOST_REQUIRE_MESSAGE(result, "Failed to create a dialog."); - - std::vector<map_generator*> map_generators; -- foreach (const config &i, main_config.child_range("multiplayer")) { -+ BOOST_FOREACH(const config &i, main_config.child_range("multiplayer")) { - if(i["map_generation"] == "default") { - const config &generator_cfg = i.child("generator"); - if (generator_cfg) { -@@ -694,7 +694,7 @@ - BOOST_REQUIRE_MESSAGE(cfg, "No editor time-of-day defined"); - - std::vector<time_of_day> tods; -- foreach (const config &i, cfg.child_range("time")) { -+ BOOST_FOREACH(const config &i, cfg.child_range("time")) { - tods.push_back(time_of_day(i)); - } - return new gui2::teditor_settings(NULL, tods); -Index: src/filesystem.cpp -=================================================================== ---- src/filesystem.cpp (revision 54624) -+++ src/filesystem.cpp (revision 54625) -@@ -56,7 +56,6 @@ - - #include "config.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "game_config.hpp" - #include "game_preferences.hpp" - #include "log.hpp" -@@ -65,6 +64,8 @@ - #include "serialization/string_utils.hpp" - #include "version.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_filesystem("filesystem"); - #define DBG_FS LOG_STREAM(debug, log_filesystem) - #define LOG_FS LOG_STREAM(info, log_filesystem) -@@ -1010,7 +1011,7 @@ - cleanup(); - init_binary_paths(); - -- foreach (const config &bp, cfg.child_range("binary_path")) -+ BOOST_FOREACH(const config &bp, cfg.child_range("binary_path")) - { - std::string path = bp["path"].str(); - if (path.find("..") != std::string::npos) { -@@ -1057,7 +1058,7 @@ - - init_binary_paths(); - -- foreach (const std::string &path, binary_paths) -+ BOOST_FOREACH(const std::string &path, binary_paths) - { - res.push_back(get_user_data_dir() + "/" + path + type + "/"); - -@@ -1098,7 +1099,7 @@ - return std::string(); - } - -- foreach (const std::string &path, get_binary_paths(type)) -+ BOOST_FOREACH(const std::string &path, get_binary_paths(type)) - { - const std::string file = path + filename; - DBG_FS << " checking '" << path << "'\n"; -@@ -1126,7 +1127,7 @@ - return std::string(); - } - -- foreach (const std::string &path, get_binary_paths(type)) -+ BOOST_FOREACH(const std::string &path, get_binary_paths(type)) - { - const std::string file = path + filename; - DBG_FS << " checking '" << path << "'\n"; -@@ -1291,7 +1292,7 @@ - p4 << drive; - #endif - -- foreach (const std::string &s, components) -+ BOOST_FOREACH(const std::string &s, components) - { - p4 << '/' << s; - } -Index: src/help.cpp -=================================================================== ---- src/help.cpp (revision 54624) -+++ src/help.cpp (revision 54625) -@@ -27,7 +27,6 @@ - #include "about.hpp" - #include "display.hpp" - #include "exceptions.hpp" --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "gettext.hpp" - #include "gui/dialogs/transient_message.hpp" -@@ -40,6 +39,8 @@ - #include "wml_separators.hpp" - #include "serialization/parser.hpp" - -+#include <boost/foreach.hpp> -+ - #include <queue> - - static lg::log_domain log_display("display"); -@@ -793,7 +794,7 @@ - // opening the help browser in the default manner. - config hidden_toplevel; - std::stringstream ss; -- foreach (const config §ion, help_config->child_range("section")) -+ BOOST_FOREACH(const config §ion, help_config->child_range("section")) - { - const std::string id = section["id"]; - if (find_section(toplevel, id) == NULL) { -@@ -810,7 +811,7 @@ - } - hidden_toplevel["sections"] = ss.str(); - ss.str(""); -- foreach (const config &topic, help_config->child_range("topic")) -+ BOOST_FOREACH(const config &topic, help_config->child_range("topic")) - { - const std::string id = topic["id"]; - if (find_topic(toplevel, id) == NULL) { -@@ -861,7 +862,7 @@ - } - } - -- foreach (const config §ion, cfg.child_range("section")) -+ BOOST_FOREACH(const config §ion, cfg.child_range("section")) - { - const std::vector<std::string> sections_refd - = utils::quoted_split(section["sections"]); -@@ -885,7 +886,7 @@ - } - } - -- foreach (const config §ion, cfg.child_range("section")) -+ BOOST_FOREACH(const config §ion, cfg.child_range("section")) - { - const std::vector<std::string> topics_refd - = utils::quoted_split(section["topics"]); -@@ -1103,7 +1104,7 @@ - std::map<t_string, std::string> special_description; - std::map<t_string, std::set<std::string, string_less> > special_units; - -- foreach (const unit_type_data::unit_type_map::value_type &i, unit_types.types()) -+ BOOST_FOREACH(const unit_type_data::unit_type_map::value_type &i, unit_types.types()) - { - const unit_type &type = i.second; - // Only show the weapon special if we find it on a unit that -@@ -1171,7 +1172,7 @@ - // should have a full description, if so, add this units abilities - // for display. We do not want to show abilities that the user has - // not encountered yet. -- foreach (const unit_type_data::unit_type_map::value_type &i, unit_types.types()) -+ BOOST_FOREACH(const unit_type_data::unit_type_map::value_type &i, unit_types.types()) - { - const unit_type &type = i.second; - if (description_type(type) == FULL_DESCRIPTION) { -@@ -1244,7 +1245,7 @@ - const config& era = game_cfg->child("era"); - if (era) { - std::vector<std::string> faction_links; -- foreach (const config &f, era.child_range("multiplayer_side")) { -+ BOOST_FOREACH(const config &f, era.child_range("multiplayer_side")) { - const std::string& id = f["id"]; - if (id == "Random") - continue; -@@ -1260,7 +1261,7 @@ - text << "<header>text='" << _("Leaders:") << "'</header>" << "\n"; - const std::vector<std::string> leaders = - make_unit_links_list( utils::split(f["leader"]), true ); -- foreach (const std::string &link, leaders) { -+ BOOST_FOREACH(const std::string &link, leaders) { - text << link << "\n"; - } - -@@ -1269,7 +1270,7 @@ - text << "<header>text='" << _("Recruits:") << "'</header>" << "\n"; - const std::vector<std::string> recruits = - make_unit_links_list( utils::split(f["recruit"]), true ); -- foreach (const std::string &link, recruits) { -+ BOOST_FOREACH(const std::string &link, recruits) { - text << link << "\n"; - } - -@@ -1291,7 +1292,7 @@ - text << "<header>text='" << _("Factions:") << "'</header>" << "\n"; - - std::sort(faction_links.begin(), faction_links.end()); -- foreach (const std::string &link, faction_links) { -+ BOOST_FOREACH(const std::string &link, faction_links) { - text << link << "\n"; - } - -@@ -1366,7 +1367,7 @@ - reverse ? type_.advances_from() : type_.advances_to(); - bool first = true; - -- foreach (const std::string &adv, adv_units) -+ BOOST_FOREACH(const std::string &adv, adv_units) - { - const unit_type *type = unit_types.find(adv); - if (!type || type->hide_help()) continue; -@@ -1676,7 +1677,7 @@ - std::vector<std::string> make_unit_links_list(const std::vector<std::string>& type_id_list, bool ordered) - { - std::vector<std::string> links_list; -- foreach (const std::string &type_id, type_id_list) { -+ BOOST_FOREACH(const std::string &type_id, type_id_list) { - std::string unit_link = make_unit_link(type_id); - if (!unit_link.empty()) - links_list.push_back(unit_link); -@@ -1693,7 +1694,7 @@ - std::set<std::string, string_less> races; - std::set<std::string, string_less> visible_races; - -- foreach (const unit_type_data::unit_type_map::value_type &i, unit_types.types()) -+ BOOST_FOREACH(const unit_type_data::unit_type_map::value_type &i, unit_types.types()) - { - const unit_type &type = i.second; - UNIT_DESCRIPTION_TYPE desc_type = description_type(type); -@@ -1736,7 +1737,7 @@ - std::set<std::string, string_less> race_units; - std::set<std::string, string_less> race_topics; - -- foreach (const unit_type_data::unit_type_map::value_type &i, unit_types.types()) -+ BOOST_FOREACH(const unit_type_data::unit_type_map::value_type &i, unit_types.types()) - { - const unit_type &type = i.second; - -@@ -1768,7 +1769,7 @@ - race_name = r->plural_name(); - race_description = r->description(); - // if (description.empty()) description = _("No description Available"); -- foreach (const config &additional_topic, r->additional_topics()) -+ BOOST_FOREACH(const config &additional_topic, r->additional_topics()) - { - std::string id = additional_topic["id"]; - std::string title = additional_topic["title"]; -Index: src/savegame.cpp -=================================================================== ---- src/savegame.cpp (revision 54624) -+++ src/savegame.cpp (revision 54625) -@@ -17,7 +17,6 @@ - #include "savegame.hpp" - - #include "dialogs.hpp" //FIXME: get rid of this as soon as the two remaining dialogs are moved to gui2 --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_end_exceptions.hpp" - #include "game_preferences.hpp" -@@ -40,6 +39,8 @@ - #include "unit_id.hpp" - #include "version.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define LOG_SAVE LOG_STREAM(info, log_engine) - #define ERR_SAVE LOG_STREAM(err, log_engine) -@@ -913,7 +914,7 @@ - bool shrouded = false; - - const config& snapshot = has_snapshot ? gamestate_.snapshot : gamestate_.starting_pos; -- foreach (const config &side, snapshot.child_range("side")) -+ BOOST_FOREACH(const config &side, snapshot.child_range("side")) - { - if (side["controller"] != "human") { - continue; -@@ -922,7 +923,7 @@ - shrouded = true; - } - -- foreach (const config &u, side.child_range("unit")) -+ BOOST_FOREACH(const config &u, side.child_range("unit")) - { - if (u["canrecruit"].to_bool()) { - leader = u["id"].str(); -@@ -960,7 +961,7 @@ - // if there is no scenario information in the starting pos, add the (persistent) sides from the snapshot - // else do nothing, as persistence information was already added at the end of the previous scenario - if (gamestate().starting_pos["id"].empty()) { -- foreach(const config &snapshot_side, gamestate().snapshot.child_range("side")) { -+ BOOST_FOREACH(const config &snapshot_side, gamestate().snapshot.child_range("side")) { - //add all side tags (assuming they only contain carryover information) - gamestate().starting_pos.add_child("side", snapshot_side); - } -Index: src/replay.cpp -=================================================================== ---- src/replay.cpp (revision 54624) -+++ src/replay.cpp (revision 54625) -@@ -23,7 +23,6 @@ - #include "global.hpp" - - #include "dialogs.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_end_exceptions.hpp" - #include "game_events.hpp" -@@ -41,6 +40,7 @@ - #include "whiteboard/manager.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_replay("replay"); - #define DBG_REPLAY LOG_STREAM(debug, log_replay) -@@ -67,7 +67,7 @@ - << nunits << " according to data source. " << units.size() << " locally\n"; - - std::set<map_location> locs; -- foreach (const config &u, cfg.child_range("unit")) -+ BOOST_FOREACH(const config &u, cfg.child_range("unit")) - { - const map_location loc(u, resources::state_of_game); - locs.insert(loc); -@@ -88,7 +88,7 @@ - errbuf.clear(); - } - -- foreach (const config &un, cfg.child_range("unit")) -+ BOOST_FOREACH(const config &un, cfg.child_range("unit")) - { - const map_location loc(un, resources::state_of_game); - const unit_map::const_iterator u = units.find(loc); -@@ -560,7 +560,7 @@ - const map_location &src = steps.front(); - const map_location &dst = steps.back(); - -- foreach (const async_cmd &ac, async_cmds) -+ BOOST_FOREACH(const async_cmd &ac, async_cmds) - { - if (config &async_child = ac.cfg->child("rename")) { - map_location aloc(async_child, resources::state_of_game); -@@ -576,7 +576,7 @@ - // A unit is being un-recruited or un-recalled. - // Remove unsynced commands that would act on that unit. - map_location src(*chld, resources::state_of_game); -- foreach (const async_cmd &ac, async_cmds) -+ BOOST_FOREACH(const async_cmd &ac, async_cmds) - { - if (config &async_child = ac.cfg->child("rename")) - { -@@ -680,7 +680,7 @@ - - void replay::add_config(const config& cfg, MARK_SENT mark) - { -- foreach (const config &cmd, cfg.child_range("command")) -+ BOOST_FOREACH(const config &cmd, cfg.child_range("command")) - { - config &cfg = cfg_.add_child("command", cmd); - if (cfg.child("speak")) -@@ -730,7 +730,7 @@ - if(! game_config::mp_debug) { - return; - } -- foreach (const config &ch, cfg.child_range("checksum")) -+ BOOST_FOREACH(const config &ch, cfg.child_range("checksum")) - { - map_location loc(ch, resources::state_of_game); - unit_map::const_iterator u = resources::units->find(loc); -@@ -1151,7 +1151,7 @@ - } - else if (const config &child = cfg->child("fire_event")) - { -- foreach (const config &v, child.child_range("set_variable")) { -+ BOOST_FOREACH(const config &v, child.child_range("set_variable")) { - resources::state_of_game->set_variable(v["name"], v["value"]); - } - const std::string &event = child["raise"]; -Index: src/game_preferences_display.cpp -=================================================================== ---- src/game_preferences_display.cpp (revision 54624) -+++ src/game_preferences_display.cpp (revision 54625) -@@ -19,7 +19,6 @@ - #include "display.hpp" - #include "filesystem.hpp" - #include "filechooser.hpp" --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "gettext.hpp" - #include "gui/dialogs/simple_item_selector.hpp" -@@ -30,6 +29,7 @@ - #include "widgets/slider.hpp" - #include "formula_string_utils.hpp" - -+#include <boost/foreach.hpp> - - namespace preferences { - -@@ -1071,7 +1071,7 @@ - void preferences_dialog::set_advanced_menu() - { - std::vector<std::string> advanced_items; -- foreach (const config &adv, adv_preferences_cfg_) -+ BOOST_FOREACH(const config &adv, adv_preferences_cfg_) - { - std::ostringstream str; - std::string field = preferences::get(adv["field"]); -@@ -1096,7 +1096,7 @@ - { - adv_preferences_cfg_.clear(); - -- foreach(const config& adv, game_cfg_.child_range("advanced_preference")) { -+ BOOST_FOREACH(const config& adv, game_cfg_.child_range("advanced_preference")) { - adv_preferences_cfg_.push_back(adv); - } - -Index: src/image.cpp -=================================================================== ---- src/image.cpp (revision 54624) -+++ src/image.cpp (revision 54625) -@@ -25,7 +25,6 @@ - #include "color_range.hpp" - #include "config.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "game_config.hpp" - #include "image.hpp" - #include "image_modifications.hpp" -@@ -36,6 +35,7 @@ - #include "SDL_image.h" - - #include <boost/functional/hash.hpp> -+#include <boost/foreach.hpp> - - #include <list> - #include <set> -@@ -376,7 +376,7 @@ - std::string trackpath = get_binary_file_location("", "l10n-track"); - std::string contents = read_file(trackpath); - std::vector<std::string> lines = utils::split(contents, '\n'); -- foreach (const std::string &line, lines) { -+ BOOST_FOREACH(const std::string &line, lines) { - size_t p1 = line.find(fsep); - if (p1 == std::string::npos) - continue; -@@ -423,7 +423,7 @@ - // add en_US with lowest priority, since the message above will - // not have it when translated. - langs.push_back("en_US"); -- foreach (const std::string &lang, langs) { -+ BOOST_FOREACH(const std::string &lang, langs) { - std::string loc_file = dir + "l10n" + "/" + lang + "/" + loc_base; - if (file_exists(loc_file) && localized_file_uptodate(loc_file)) { - return loc_file; -Index: src/team.cpp -=================================================================== ---- src/team.cpp (revision 54624) -+++ src/team.cpp (revision 54625) -@@ -21,13 +21,14 @@ - #include "team.hpp" - - #include "ai/manager.hpp" --#include "foreach.hpp" - #include "game_events.hpp" - #include "gamestatus.hpp" - #include "resources.hpp" - #include "game_preferences.hpp" - #include "whiteboard/side_actions.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define DBG_NG LOG_STREAM(debug, log_engine) - #define LOG_NG LOG_STREAM(info, log_engine) -@@ -318,7 +319,7 @@ - // Was it correct? - - // Load in the villages the side controls at the start -- foreach (const config &v, cfg.child_range("village")) -+ BOOST_FOREACH(const config &v, cfg.child_range("village")) - { - map_location loc(v, resources::state_of_game); - if (map.is_village(loc)) { -@@ -397,7 +398,7 @@ - return info_.minimum_recruit_price; - }else{ - int min = 20; -- foreach(std::string recruit, info_.can_recruit){ -+ BOOST_FOREACH(std::string recruit, info_.can_recruit){ - const unit_type *ut = unit_types.find(recruit); - if(!ut) - continue; -@@ -605,7 +606,7 @@ - return true; - } - -- foreach (const team &t, *teams) { -+ BOOST_FOREACH(const team &t, *teams) { - if (t.is_human()) - return false; - } -Index: src/config_cache.cpp -=================================================================== ---- src/config_cache.cpp (revision 54624) -+++ src/config_cache.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "config_cache.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "game_config.hpp" - #include "game_display.hpp" -@@ -29,6 +28,7 @@ - #include "serialization/parser.hpp" - #include "version.hpp" - -+#include <boost/foreach.hpp> - #include <boost/algorithm/string/replace.hpp> - - static lg::log_domain log_cache("cache"); -@@ -113,7 +113,7 @@ - config_writer writer(*stream, gzip, game_config::cache_compression_level); - - // write all defines to stream -- foreach (const preproc_map::value_type &define, defines_map) { -+ BOOST_FOREACH(const preproc_map::value_type &define, defines_map) { - define.second.write(writer, define.first); - } - } -@@ -262,7 +262,7 @@ - - // use static preproc_define::read_pair(config) to make a object - // and pass that object config_cache_transaction::insert_to_active method -- foreach (const config::any_child &value, cfg.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &value, cfg.all_children_range()) { - config_cache_transaction::instance().insert_to_active( - preproc_define::read_pair(value.cfg)); - } -@@ -271,7 +271,7 @@ - void config_cache::read_defines_queue() - { - const config_cache_transaction::filenames& files = config_cache_transaction::instance().get_define_files(); -- foreach (const std::string &path, files) { -+ BOOST_FOREACH(const std::string &path, files) { - read_defines_file(path); - } - } -@@ -394,7 +394,7 @@ - std::insert_iterator<preproc_map>(temp,temp.begin()), - &compare_define); - -- foreach (const preproc_map::value_type &def, temp) { -+ BOOST_FOREACH(const preproc_map::value_type &def, temp) { - insert_to_active(def); - } - -Index: src/game_events.cpp -=================================================================== ---- src/game_events.cpp (revision 54624) -+++ src/game_events.cpp (revision 54625) -@@ -23,7 +23,6 @@ - #include "actions.hpp" - #include "ai/manager.hpp" - #include "dialogs.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_events.hpp" - #include "game_preferences.hpp" -@@ -60,6 +59,8 @@ - #include <iomanip> - #include <iostream> - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define DBG_NG LOG_STREAM(debug, log_engine) - #define LOG_NG LOG_STREAM(info, log_engine) -@@ -341,7 +342,7 @@ - std::vector<std::pair<int,int> > counts = (*u).has_attribute("count") - ? utils::parse_ranges((*u)["count"]) : default_counts; - int match_count = 0; -- foreach (const unit &i, *resources::units) -+ BOOST_FOREACH(const unit &i, *resources::units) - { - if(i.hitpoints() > 0 && unit_matches_filter(i, *u)) { - ++match_count; -@@ -396,7 +397,7 @@ - const vconfig::child_list& variables = cond.get_children("variable"); - backwards_compat = backwards_compat && variables.empty(); - -- foreach (const vconfig &values, variables) -+ BOOST_FOREACH(const vconfig &values, variables) - { - const std::string name = values["name"]; - config::attribute_value value = resources::state_of_game->get_variable_const(name); -@@ -589,7 +590,7 @@ - const std::vector<game_events::event_handler>& handlers, - const std::string& msg) { - -- foreach(const game_events::event_handler& h, handlers){ -+ BOOST_FOREACH(const game_events::event_handler& h, handlers){ - const config& cfg = h.get_config(); - ss << "name=" << cfg["name"] << ", with id=" << cfg["id"] << "; "; - } -@@ -603,7 +604,7 @@ - std::stringstream ss; - log_handler(ss, active_, "active"); - log_handler(ss, insert_buffer_, "insert buffered"); -- foreach(const std::string& h, remove_buffer_){ -+ BOOST_FOREACH(const std::string& h, remove_buffer_){ - ss << "id=" << h << "; "; - } - DBG_EH << "remove buffered handlers are now " << ss.str() << "\n"; -@@ -631,7 +632,7 @@ - const config & cfg = new_handler.get_config(); - std::string id = cfg["id"]; - if(!id.empty()) { -- foreach( game_events::event_handler const & eh, active_) { -+ BOOST_FOREACH( game_events::event_handler const & eh, active_) { - config const & temp_config( eh.get_config()); - if(id == temp_config["id"]) { - DBG_EH << "ignoring event handler for name=" << cfg["name"] << -@@ -698,12 +699,12 @@ - return; - - // Commit any event removals -- foreach(std::string const & i , remove_buffer_ ){ -+ BOOST_FOREACH(std::string const & i , remove_buffer_ ){ - remove_event_handler( i ); } - remove_buffer_.clear(); - - // Commit any spawned events-within-events -- foreach( game_events::event_handler const & i , insert_buffer_ ){ -+ BOOST_FOREACH( game_events::event_handler const & i , insert_buffer_ ){ - add_event_handler( i ); } - insert_buffer_.clear(); - -@@ -735,7 +736,7 @@ - std::vector<int> sides = game_events::get_sides_vector(cfg); - size_t index; - -- foreach (const int &side_num, sides) -+ BOOST_FOREACH(const int &side_num, sides) - { - index = side_num - 1; - team &t = (*resources::teams)[index]; -@@ -744,7 +745,7 @@ - filter.restrict_size(game_config::max_loop); - filter.get_locations(locs, true); - -- foreach (map_location const &loc, locs) -+ BOOST_FOREACH(map_location const &loc, locs) - { - if (remove) { - t.clear_shroud(loc); -@@ -774,7 +775,7 @@ - const bool remove = utils::string_bool(cfg["remove"], false); - if (remove) { - const std::vector<std::string> ids = utils::split(cfg["id"]); -- foreach(const std::string &id, ids) { -+ BOOST_FOREACH(const std::string &id, ids) { - resources::tunnels->remove(id); - } - } else if (cfg.get_children("source").empty() || -@@ -941,7 +942,7 @@ - WML_HANDLER_FUNCTION(modify_ai, /*event_info*/, cfg) - { - std::vector<int> sides = game_events::get_sides_vector(cfg); -- foreach (const int &side_num, sides) -+ BOOST_FOREACH(const int &side_num, sides) - { - ai::manager::modify_active_ai_for_side(side_num,cfg.get_parsed_config()); - } -@@ -967,7 +968,7 @@ - std::vector<int> sides = game_events::get_sides_vector(cfg); - size_t team_index; - -- foreach (const int &side_num, sides) -+ BOOST_FOREACH(const int &side_num, sides) - { - team_index = side_num - 1; - LOG_NG << "modifying side: " << side_num << "\n"; -@@ -1212,7 +1213,7 @@ - - size_t longest_path = 0; - -- foreach(const vconfig& config, unit_cfgs) { -+ BOOST_FOREACH(const vconfig& config, unit_cfgs) { - const std::vector<std::string> xvals = utils::split(config["x"]); - const std::vector<std::string> yvals = utils::split(config["y"]); - int skip_steps = config["skip_steps"]; -@@ -1461,7 +1462,7 @@ - - variable_info vi(array_name, true, variable_info::TYPE_ARRAY); - bool first = true; -- foreach (const config &cfg, vi.as_array()) -+ BOOST_FOREACH(const config &cfg, vi.as_array()) - { - std::string current_string = cfg[key_name]; - if (remove_empty && current_string.empty()) continue; -@@ -1589,7 +1590,7 @@ - dest.vars->merge_with(data); - } - } else if(mode == "insert" || dest.explicit_index) { -- foreach (const config &child, data.child_range(dest.key)) -+ BOOST_FOREACH(const config &child, data.child_range(dest.key)) - { - dest.vars->add_child_at(dest.key, child, dest.index++); - } -@@ -1619,7 +1620,7 @@ - item["type"] = *ti; - } - unit_map::iterator itor; -- foreach (unit &u, *resources::units) { -+ BOOST_FOREACH(unit &u, *resources::units) { - if (game_events::unit_matches_filter(u, filter)) { - u.set_role(cfg["role"]); - found = true; -@@ -1632,7 +1633,7 @@ - std::set<std::string> player_ids; - std::vector<std::string> sides = utils::split(cfg["side"]); - const bool has_any_sides = !sides.empty(); -- foreach(std::string const& side_str, sides) { -+ BOOST_FOREACH(std::string const& side_str, sides) { - size_t side_num = lexical_cast_default<size_t>(side_str,0); - if(side_num > 0 && side_num <= resources::teams->size()) { - player_ids.insert((resources::teams->begin() + (side_num - 1))->save_id()); -@@ -1699,7 +1700,7 @@ - game_map->set_terrain(loc, new_t); - screen_needs_rebuild = true; - -- foreach (const t_translation::t_terrain &ut, game_map->underlying_union_terrain(loc)) { -+ BOOST_FOREACH(const t_translation::t_terrain &ut, game_map->underlying_union_terrain(loc)) { - preferences::encountered_terrains().insert(ut); - } - } -@@ -1820,7 +1821,7 @@ - const map_location cfg_loc = cfg_to_loc(cfg); - - //TODO fendrin: comment this monster -- foreach (unit_map::const_unit_iterator leader, leaders) { -+ BOOST_FOREACH(unit_map::const_unit_iterator leader, leaders) { - DBG_NG << "...considering " + leader->id() + " as the recalling leader...\n"; - map_location loc = cfg_loc; - if ( (leader_filter.null() || leader->matches_filter(leader_filter, leader->get_location())) && -@@ -1879,7 +1880,7 @@ - - map_location loc; - if(!filter.null()) { -- foreach (const unit &u, *resources::units) { -+ BOOST_FOREACH(const unit &u, *resources::units) { - if (game_events::unit_matches_filter(u, filter)) { - loc = u.get_location(); - break; -@@ -1926,7 +1927,7 @@ - } - } - -- foreach (const vconfig &cmd, cfg.get_children(command_type)) { -+ BOOST_FOREACH(const vconfig &cmd, cfg.get_children(command_type)) { - handle_event_commands(event_info, cmd); - } - } -@@ -2029,13 +2030,13 @@ - std::vector<unit *> dead_men_walking; - // unit_map::iterator uit(resources::units->begin()), uend(resources::units->end()); - // for(;uit!=uend; ++uit){ -- foreach(unit & u, *resources::units){ -+ BOOST_FOREACH(unit & u, *resources::units){ - if(game_events::unit_matches_filter(u, cfg)){ - dead_men_walking.push_back(&u); - } - } - -- foreach(unit * un, dead_men_walking) { -+ BOOST_FOREACH(unit * un, dead_men_walking) { - map_location loc(un->get_location()); - bool fire_event = false; - game_events::entity_location death_loc(*un); -@@ -2429,7 +2430,7 @@ - - if (clear_shroud_bool) { - side_filter filter(cfg); -- foreach(const int side, filter.get_teams()){ -+ BOOST_FOREACH(const int side, filter.get_teams()){ - clear_shroud(side); - } - screen.recalculate_minimap(); -@@ -2466,7 +2467,7 @@ - const vconfig healers_filter = cfg.child("filter_second"); - std::vector<unit*> healers; - if (!healers_filter.null()) { -- foreach (unit& u, *units) { -+ BOOST_FOREACH(unit& u, *units) { - if (game_events::unit_matches_filter(u, healers_filter) && u.has_ability_type("heals")) { - healers.push_back(&u); - } -@@ -2835,7 +2836,7 @@ - return; - } - -- foreach (const vconfig &cmd, option_events[option_chosen]) { -+ BOOST_FOREACH(const vconfig &cmd, option_events[option_chosen]) { - handle_event_commands(event_info, cmd); - } - } -@@ -2858,7 +2859,7 @@ - if(remove) { - const std::vector<std::string> id_list = - utils::split(ids, ',', utils::STRIP_SPACES | utils::REMOVE_EMPTY); -- foreach(const std::string& id, id_list) { -+ BOOST_FOREACH(const std::string& id, id_list) { - resources::tod_manager->remove_time_area(id); - LOG_NG << "event WML removed time_area '" << id << "'\n"; - } -@@ -2997,7 +2998,7 @@ - if(is_empty_command) { - mref->command.add_child("allow_undo"); - } -- foreach(game_events::event_handler& hand, event_handlers) { -+ BOOST_FOREACH(game_events::event_handler& hand, event_handlers) { - if(hand.is_menu_item() && hand.matches_name(mref->name)) { - LOG_NG << "changing command for " << mref->name << " to:\n" << *wcc.second; - hand = game_events::event_handler(mref->command, true); -@@ -3029,14 +3030,14 @@ - vconfig filters(handler.get_config()); - - -- foreach (const vconfig &condition, filters.get_children("filter_condition")) -+ BOOST_FOREACH(const vconfig &condition, filters.get_children("filter_condition")) - { - if (!game_events::conditional_passed(condition)) { - return false; - } - } - -- foreach (const vconfig &f, filters.get_children("filter")) -+ BOOST_FOREACH(const vconfig &f, filters.get_children("filter")) - { - if (unit1 == units->end() || !game_events::unit_matches_filter(*unit1, f)) { - return false; -@@ -3046,7 +3047,7 @@ - } - } - -- foreach (const vconfig &f, filters.get_children("filter_side")) -+ BOOST_FOREACH(const vconfig &f, filters.get_children("filter_side")) - { - side_filter ssf(f); - const int current_side = resources::controller->current_side(); -@@ -3055,7 +3056,7 @@ - - vconfig::child_list special_filters = filters.get_children("filter_attack"); - bool special_matches = special_filters.empty(); -- foreach (const vconfig &f, special_filters) -+ BOOST_FOREACH(const vconfig &f, special_filters) - { - if (unit1 != units->end() && game_events::matches_special_filter(ev.data.child("first"), f)) { - special_matches = true; -@@ -3068,7 +3069,7 @@ - return false; - } - -- foreach (const vconfig &f, filters.get_children("filter_second")) -+ BOOST_FOREACH(const vconfig &f, filters.get_children("filter_second")) - { - if (unit2 == units->end() || !game_events::unit_matches_filter(*unit2, f)) { - return false; -@@ -3080,7 +3081,7 @@ - - special_filters = filters.get_children("filter_second_attack"); - special_matches = special_filters.empty(); -- foreach (const vconfig &f, special_filters) -+ BOOST_FOREACH(const vconfig &f, special_filters) - { - if (unit2 != units->end() && game_events::matches_special_filter(ev.data.child("second"), f)) { - special_matches = true; -@@ -3275,17 +3276,17 @@ - : variable_manager() - { - assert(!manager_running); -- foreach (const config &ev, cfg.child_range("event")) { -+ BOOST_FOREACH(const config &ev, cfg.child_range("event")) { - event_handlers.add_event_handler(game_events::event_handler(ev)); - } -- foreach (const std::string &id, utils::split(cfg["unit_wml_ids"])) { -+ BOOST_FOREACH(const std::string &id, utils::split(cfg["unit_wml_ids"])) { - unit_wml_ids.insert(id); - } - - resources::lua_kernel = new LuaKernel(cfg); - manager_running = true; - -- foreach (static_wml_action_map::value_type &action, static_wml_actions) { -+ BOOST_FOREACH(static_wml_action_map::value_type &action, static_wml_actions) { - resources::lua_kernel->set_wml_action(action.first, action.second); - } - -@@ -3298,7 +3299,7 @@ - } - int wmi_count = 0; - typedef std::pair<std::string, wml_menu_item *> item; -- foreach (const item &itor, resources::state_of_game->wml_menu_items) { -+ BOOST_FOREACH(const item &itor, resources::state_of_game->wml_menu_items) { - if (!itor.second->command.empty()) { - event_handlers.add_event_handler(game_events::event_handler(itor.second->command, true)); - } -@@ -3312,7 +3313,7 @@ - void write_events(config& cfg) - { - assert(manager_running); -- foreach (const game_events::event_handler &eh, event_handlers) { -+ BOOST_FOREACH(const game_events::event_handler &eh, event_handlers) { - if (eh.disabled() || eh.is_menu_item()) continue; - cfg.add_child("event", eh.get_config()); - } -@@ -3385,7 +3386,7 @@ - if(std::find(unit_wml_ids.begin(),unit_wml_ids.end(),type) != unit_wml_ids.end()) return; - unit_wml_ids.insert(type); - } -- foreach (const config &new_ev, cfgs) { -+ BOOST_FOREACH(const config &new_ev, cfgs) { - if(type.empty() && new_ev["id"].empty()) - { - WRN_NG << "attempt to add an [event] with empty id=, ignoring \n"; -@@ -3427,7 +3428,7 @@ - - if(!lg::debug.dont_log("event_handler")) { - std::stringstream ss; -- foreach(const game_events::queued_event& ev, events_queue) { -+ BOOST_FOREACH(const game_events::queued_event& ev, events_queue) { - ss << "name=" << ev.name << "; "; - } - DBG_EH << "processing queued events: " << ss.str() << "\n"; -@@ -3454,7 +3455,7 @@ - - bool init_event_vars = true; - -- foreach(game_events::event_handler& handler, event_handlers) { -+ BOOST_FOREACH(game_events::event_handler& handler, event_handlers) { - if(!handler.matches_name(event_name)) - continue; - // Set the variables for the event -Index: src/formula_tokenizer.cpp -=================================================================== ---- src/formula_tokenizer.cpp (revision 54624) -+++ src/formula_tokenizer.cpp (revision 54625) -@@ -13,7 +13,6 @@ - - #include <sstream> - --#include "foreach.hpp" - #include "formula_tokenizer.hpp" - - namespace formula_tokenizer -Index: src/playcampaign.cpp -=================================================================== ---- src/playcampaign.cpp (revision 54624) -+++ src/playcampaign.cpp (revision 54625) -@@ -21,7 +21,6 @@ - - #include "global.hpp" - --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "gui/dialogs/message.hpp" - #include "gui/dialogs/transient_message.hpp" -@@ -41,6 +40,8 @@ - #include "wml_exception.hpp" - #include "formula_string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - #define LOG_G LOG_STREAM(info, lg::general) - - static lg::log_domain log_engine("engine"); -@@ -260,7 +261,7 @@ - controller_map controllers; - - if(io_type == IO_SERVER) { -- foreach (config &side, const_cast<config *>(scenario)->child_range("side")) -+ BOOST_FOREACH(config &side, const_cast<config *>(scenario)->child_range("side")) - { - if (side["current_player"] == preferences::login()) { - side["controller"] = preferences::client_type(); -@@ -280,7 +281,7 @@ - scenario = &starting_pos; - } - -- foreach (config &side, starting_pos.child_range("side")) -+ BOOST_FOREACH(config &side, starting_pos.child_range("side")) - { - if (side["current_player"] == preferences::login()) { - side["controller"] = preferences::client_type(); -@@ -474,7 +475,7 @@ - - if(io_type == IO_SERVER && scenario != NULL) { - // Tweaks sides to adapt controllers and descriptions. -- foreach (config &side, starting_pos.child_range("side")) -+ BOOST_FOREACH(config &side, starting_pos.child_range("side")) - { - std::string id = side["save_id"]; - if(id.empty()) { -@@ -547,7 +548,7 @@ - next_cfg.add_child("replay_start", gamestate.starting_pos); - //move side information from gamestate into the config that is sent to the other clients - next_cfg.clear_children("side"); -- foreach (config& side, gamestate.starting_pos.child_range("side")) -+ BOOST_FOREACH(config& side, gamestate.starting_pos.child_range("side")) - next_cfg.add_child("side", side); - - network::send_data(cfg, 0); -Index: src/multiplayer.cpp -=================================================================== ---- src/multiplayer.cpp (revision 54624) -+++ src/multiplayer.cpp (revision 54625) -@@ -40,6 +40,7 @@ - #include "unit_id.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_network("network"); - #define LOG_NW LOG_STREAM(info, log_network) -@@ -573,7 +574,7 @@ - while (true) { - const config &cfg = game_config.child("lobby_music"); - if (cfg) { -- foreach (const config &i, cfg.child_range("music")) { -+ BOOST_FOREACH(const config &i, cfg.child_range("music")) { - sound::play_music_config(i); - } - sound::commit_music_changes(); -Index: src/terrain_filter.cpp -=================================================================== ---- src/terrain_filter.cpp (revision 54624) -+++ src/terrain_filter.cpp (revision 54625) -@@ -19,7 +19,6 @@ - - #include "actions.hpp" - #include "config.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "map.hpp" - #include "resources.hpp" -@@ -27,6 +26,8 @@ - #include "tod_manager.hpp" - #include "variable.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define ERR_NG LOG_STREAM(err, log_engine) - -@@ -129,7 +130,7 @@ - } - } else { - bool found = false; -- foreach (const config &cfg, vi.as_array()) { -+ BOOST_FOREACH(const config &cfg, vi.as_array()) { - if (map_location(cfg, NULL) == loc) { - found = true; - break; -@@ -358,7 +359,7 @@ - } - } else { - std::set<map_location> findin_locs; -- foreach (const config &cfg, vi.as_array()) { -+ BOOST_FOREACH(const config &cfg, vi.as_array()) { - map_location test_loc(cfg, NULL); - if (xy_set.count(test_loc)) { - findin_locs.insert(test_loc); -Index: src/playturn.cpp -=================================================================== ---- src/playturn.cpp (revision 54624) -+++ src/playturn.cpp (revision 54625) -@@ -16,7 +16,6 @@ - #include "playturn.hpp" - - #include "construct_dialog.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_end_exceptions.hpp" - #include "game_preferences.hpp" -@@ -31,6 +30,8 @@ - #include "formula_string_utils.hpp" - #include "play_controller.hpp" - -+#include <boost/foreach.hpp> -+ - #include <ctime> - - static lg::log_domain log_network("network"); -@@ -124,11 +125,11 @@ - preferences::message_bell()); - } - -- foreach (const config &ob, cfg.child_range("observer")) { -+ BOOST_FOREACH(const config &ob, cfg.child_range("observer")) { - resources::screen->add_observer(ob["name"]); - } - -- foreach (const config &ob, cfg.child_range("observer_quit")) { -+ BOOST_FOREACH(const config &ob, cfg.child_range("observer_quit")) { - resources::screen->remove_observer(ob["name"]); - } - -@@ -147,7 +148,7 @@ - const config& change = cfg.child_or_empty("change_controller"); - const std::string& side_drop = cfg["side_drop"].str(); - -- foreach (const config &t, turns) -+ BOOST_FOREACH(const config &t, turns) - { - handle_turn(turn_end, t, skip_replay, backlog); - } -@@ -240,7 +241,7 @@ - options.push_back(_("Abort game")); - - //get all observers in as options to transfer control -- foreach (const std::string &ob, resources::screen->observers()) -+ BOOST_FOREACH(const std::string &ob, resources::screen->observers()) - { - t_vars["player"] = ob; - options.push_back(vgettext("Replace with $player", t_vars)); -@@ -248,7 +249,7 @@ - } - - //get all allies in as options to transfer control -- foreach (team &t, *resources::teams) -+ BOOST_FOREACH(team &t, *resources::teams) - { - if (!t.is_enemy(side) && !t.is_human() && !t.is_ai() && !t.is_empty() - && t.current_player() != tm.current_player()) -Index: src/tod_manager.cpp -=================================================================== ---- src/tod_manager.cpp (revision 54624) -+++ src/tod_manager.cpp (revision 54625) -@@ -12,7 +12,6 @@ - See the COPYING file for more details. - */ - --#include "foreach.hpp" - #include "tod_manager.hpp" - #include "wml_exception.hpp" - #include "gettext.hpp" -@@ -25,6 +24,8 @@ - #include "unit.hpp" - #include "unit_abilities.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define LOG_NG LOG_STREAM(info, log_engine) - -@@ -279,7 +280,7 @@ - void tod_manager::set_new_current_times(const int new_current_turn_number) - { - currentTime_ = calculate_current_time(times_.size(), new_current_turn_number, currentTime_); -- foreach(area_time_of_day& area, areas_) { -+ BOOST_FOREACH(area_time_of_day& area, areas_) { - area.currentTime = calculate_current_time( - area.times.size(), - new_current_turn_number, -Index: src/multiplayer_create.cpp -=================================================================== ---- src/multiplayer_create.cpp (revision 54624) -+++ src/multiplayer_create.cpp (revision 54625) -@@ -20,7 +20,6 @@ - - #include "global.hpp" - --#include "foreach.hpp" - #include "gettext.hpp" - #include "game_display.hpp" - #include "game_preferences.hpp" -@@ -40,6 +39,8 @@ - #include "wml_separators.hpp" - #include "formula_string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_config("config"); - #define ERR_CF LOG_STREAM(err, log_config) - -@@ -127,7 +128,7 @@ - - // Standard maps - i = 0; -- foreach (const config &j, cfg.child_range("multiplayer")) -+ BOOST_FOREACH(const config &j, cfg.child_range("multiplayer")) - { - if (j["allow_new_game"].to_bool(true)) - { -@@ -217,7 +218,7 @@ - - // The possible eras to play - std::vector<std::string> eras; -- foreach (const config &er, cfg.child_range("era")) { -+ BOOST_FOREACH(const config &er, cfg.child_range("era")) { - eras.push_back(er["name"]); - } - if(eras.empty()) { -@@ -547,7 +548,7 @@ - } - - int nsides = 0; -- foreach (const config &k, parameters_.scenario_data.child_range("side")) { -+ BOOST_FOREACH(const config &k, parameters_.scenario_data.child_range("side")) { - if (k["allow_player"].to_bool(true)) ++nsides; - } - -Index: src/commandline_options.cpp -=================================================================== ---- src/commandline_options.cpp (revision 54624) -+++ src/commandline_options.cpp (revision 54625) -@@ -14,12 +14,12 @@ - */ - - #include "commandline_options.hpp" --#include "foreach.hpp" - #include "serialization/string_utils.hpp" - #include "util.hpp" - #include "lua/llimits.h" - - #include <boost/version.hpp> -+#include <boost/foreach.hpp> - - namespace po = boost::program_options; - -@@ -374,7 +374,7 @@ - void commandline_options::parse_log_domains_(const std::string &domains_string, const int severity) - { - const std::vector<std::string> domains = utils::split(domains_string, ','); -- foreach (const std::string& domain, domains) -+ BOOST_FOREACH(const std::string& domain, domains) - { - if (!log) - log = std::vector<boost::tuple<int, std::string> >(); -@@ -396,7 +396,7 @@ - { - std::vector<boost::tuple<unsigned int,std::string> > vec; - boost::tuple<unsigned int,std::string> elem; -- foreach(const std::string &s, strings) -+ BOOST_FOREACH(const std::string &s, strings) - { - const std::vector<std::string> tokens = utils::split(s, separator); - if (tokens.size()!=2) -@@ -415,7 +415,7 @@ - { - std::vector<boost::tuple<unsigned int,std::string,std::string> > vec; - boost::tuple<unsigned int,std::string,std::string> elem; -- foreach(const std::string &s, strings) -+ BOOST_FOREACH(const std::string &s, strings) - { - const std::vector<std::string> tokens = utils::split(s, separator); - if (tokens.size()!=3) -Index: src/gui/dialogs/editor_set_starting_position.cpp -=================================================================== ---- src/gui/dialogs/editor_set_starting_position.cpp (revision 54624) -+++ src/gui/dialogs/editor_set_starting_position.cpp (revision 54625) -@@ -17,7 +17,7 @@ - - #include "gui/dialogs/editor_set_starting_position.hpp" - --#include "foreach.hpp" -+#include <boost/foreach.hpp> - #include "formatter.hpp" - #include "formula_string_utils.hpp" - #include "gettext.hpp" -Index: src/gui/dialogs/gamestate_inspector.cpp -=================================================================== ---- src/gui/dialogs/gamestate_inspector.cpp (revision 54624) -+++ src/gui/dialogs/gamestate_inspector.cpp (revision 54625) -@@ -27,7 +27,6 @@ - #include "gui/widgets/settings.hpp" - #include "gui/widgets/window.hpp" - --#include "../../foreach.hpp" - #include "../../gamestatus.hpp" - #include "../../resources.hpp" - #include "../../team.hpp" -@@ -36,6 +35,7 @@ - #include <vector> - #include <boost/bind.hpp> - #include <boost/shared_ptr.hpp> -+#include <boost/foreach.hpp> - - namespace gui2 { - -@@ -189,11 +189,11 @@ - ? resources::state_of_game->get_variables() - : config(); - -- foreach( const config::attribute &a, vars.attribute_range()) { -+ BOOST_FOREACH( const config::attribute &a, vars.attribute_range()) { - model_.add_row_to_stuff_list(a.first,a.first); - } - -- foreach( const config::any_child &c, vars.all_children_range()) { -+ BOOST_FOREACH( const config::any_child &c, vars.all_children_range()) { - model_.add_row_to_stuff_list("["+c.key+"]","["+c.key+"]"); - } - -@@ -214,7 +214,7 @@ - ? resources::state_of_game->get_variables() - : config(); - -- foreach( const config::attribute &a, vars.attribute_range()) { -+ BOOST_FOREACH( const config::attribute &a, vars.attribute_range()) { - if (selected==i) { - model_.set_inspect_window_text(a.second); - return; -@@ -222,7 +222,7 @@ - i++; - } - -- foreach( const config::any_child &c, vars.all_children_range()) { -+ BOOST_FOREACH( const config::any_child &c, vars.all_children_range()) { - if (selected==i) { - model_.set_inspect_window_text(c.cfg.debug()); - return; -@@ -268,7 +268,7 @@ - << '/' << i->max_experience() << " xp; " - << i->hitpoints() << '/' << i->max_hitpoints() - << " hp; "; -- foreach (const std::string &str, i->get_traits_list()) { -+ BOOST_FOREACH(const std::string &str, i->get_traits_list()) { - s << str <<" "; - } - -@@ -371,9 +371,9 @@ - : std::vector<unit>(); - - std::stringstream s; -- foreach (const unit &u, recall_list) { -+ BOOST_FOREACH(const unit &u, recall_list) { - s << "id=["<<u.id() << "] "<<u.type_id() << "; L"<<u.level()<<"; " << u.experience() <<"/" << u.max_experience()<< " xp "<< std::endl; -- foreach (const std::string &str, u.get_traits_list() ) { -+ BOOST_FOREACH(const std::string &str, u.get_traits_list() ) { - s << "\t" << str<< std::endl; - } - s << std::endl << std::endl; -@@ -388,7 +388,7 @@ - : std::vector<unit>(); - - config c; -- foreach (const unit &u, recall_list) { -+ BOOST_FOREACH(const unit &u, recall_list) { - config c_unit; - u.write(c_unit); - c.add_child("unit",c_unit); -@@ -423,7 +423,7 @@ - << i->max_experience() << " xp; " - << i->hitpoints() << '/' - << i->max_hitpoints()<<" hp.\n"; -- foreach (const std::string &str, i->get_traits_list() ) { -+ BOOST_FOREACH(const std::string &str, i->get_traits_list() ) { - s << "\t" << str<< std::endl; - } - s << std::endl << std::endl; -@@ -457,7 +457,7 @@ - boost::shared_ptr<single_mode_controller>(new variable_mode_controller("variables",model_))); - sm_controllers_.push_back( - boost::shared_ptr<single_mode_controller>(new unit_mode_controller("units",model_))); -- //foreach team -+ //BOOST_FOREACHteam - int sides = resources::teams - ? static_cast<int>((*resources::teams).size()) - : 0; -@@ -481,7 +481,7 @@ - void show_stuff_types_list() - { - model_.clear_stuff_types_list(); -- foreach (boost::shared_ptr<single_mode_controller> sm_controller, sm_controllers_ ) { -+ BOOST_FOREACH(boost::shared_ptr<single_mode_controller> sm_controller, sm_controllers_ ) { - model_.add_row_to_stuff_types_list(sm_controller->name(),sm_controller->name()); - } - } -Index: src/gui/dialogs/unit_attack.cpp -=================================================================== ---- src/gui/dialogs/unit_attack.cpp (revision 54624) -+++ src/gui/dialogs/unit_attack.cpp (revision 54625) -@@ -27,6 +27,8 @@ - #include "gui/widgets/window.hpp" - #include "unit.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - /*WIKI -@@ -106,7 +108,7 @@ - const config empty; - attack_type no_weapon(empty); - -- foreach(const battle_context& weapon, weapons) { -+ BOOST_FOREACH(const battle_context& weapon, weapons) { - const battle_context_unit_stats& attacker = - weapon.get_attacker_stats(); - -Index: src/gui/dialogs/data_manage.cpp -=================================================================== ---- src/gui/dialogs/data_manage.cpp (revision 54624) -+++ src/gui/dialogs/data_manage.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/data_manage.hpp" - --#include "foreach.hpp" - #include "formula_string_utils.hpp" - #include "game_config.hpp" - #include "game_preferences.hpp" -@@ -43,6 +42,7 @@ - - #include <cctype> - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - namespace gui2 { - -@@ -101,7 +101,7 @@ - tlistbox& list = find_widget<tlistbox>(&window, "persist_list", false); - list.clear(); - -- foreach(const savegame::save_info game, games) { -+ BOOST_FOREACH(const savegame::save_info game, games) { - std::map<std::string, string_map> data; - string_map item; - -@@ -142,7 +142,7 @@ - find_widget<tlabel>(*it, "filename", false); - - bool found = false; -- foreach (const std::string& word, words){ -+ BOOST_FOREACH(const std::string& word, words){ - found = std::search(filename_label.label().str().begin() - , filename_label.label().str().end() - , word.begin(), word.end() -Index: src/gui/dialogs/dialog.cpp -=================================================================== ---- src/gui/dialogs/dialog.cpp (revision 54624) -+++ src/gui/dialogs/dialog.cpp (revision 54625) -@@ -17,16 +17,17 @@ - - #include "gui/dialogs/dialog.hpp" - --#include "foreach.hpp" - #include "gui/dialogs/field.hpp" - #include "gui/widgets/integer_selector.hpp" - #include "video.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - tdialog::~tdialog() - { -- foreach(tfield_* field, fields_) { -+ BOOST_FOREACH(tfield_* field, fields_) { - delete field; - } - } -@@ -193,7 +194,7 @@ - - void tdialog::init_fields(twindow& window) - { -- foreach(tfield_* field, fields_) { -+ BOOST_FOREACH(tfield_* field, fields_) { - field->attach_to_window(window); - field->widget_init(window); - } -@@ -207,7 +208,7 @@ - - void tdialog::finalize_fields(twindow& window, const bool save_fields) - { -- foreach(tfield_* field, fields_) { -+ BOOST_FOREACH(tfield_* field, fields_) { - if(save_fields) { - field->widget_finalize(window); - } -Index: src/gui/dialogs/debug_clock.cpp -=================================================================== ---- src/gui/dialogs/debug_clock.cpp (revision 54624) -+++ src/gui/dialogs/debug_clock.cpp (revision 54625) -@@ -24,6 +24,7 @@ - #include "gui/widgets/progress_bar.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #include <ctime> - -@@ -153,7 +154,7 @@ - } - - if(clock_) { -- foreach(tcanvas& canvas, clock_->canvas()) { -+ BOOST_FOREACH(tcanvas& canvas, clock_->canvas()) { - canvas.set_variable("hour", variant(hour_stamp)); - canvas.set_variable("minute", variant(minute_stamp)); - canvas.set_variable("second", variant(second_stamp)); -Index: src/gui/dialogs/wml_message.cpp -=================================================================== ---- src/gui/dialogs/wml_message.cpp (revision 54624) -+++ src/gui/dialogs/wml_message.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/wml_message.hpp" - --#include "foreach.hpp" - #include "gui/auxiliary/old_markup.hpp" - #include "gui/widgets/button.hpp" - #include "gui/widgets/label.hpp" -Index: src/gui/dialogs/simple_item_selector.cpp -=================================================================== ---- src/gui/dialogs/simple_item_selector.cpp (revision 54624) -+++ src/gui/dialogs/simple_item_selector.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/simple_item_selector.hpp" - --#include "foreach.hpp" - #include "gui/widgets/button.hpp" - #include "gui/widgets/label.hpp" - #ifdef GUI2_EXPERIMENTAL_LISTBOX -@@ -28,6 +27,8 @@ - #include "gui/widgets/settings.hpp" - #include "gui/widgets/window.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - /*WIKI -@@ -79,7 +80,7 @@ - tlistbox& list = find_widget<tlistbox>(&window, "listbox", false); - window.keyboard_capture(&list); - -- foreach(const tsimple_item_selector::item_type& it, items_) { -+ BOOST_FOREACH(const tsimple_item_selector::item_type& it, items_) { - std::map<std::string, string_map> data; - string_map column; - -Index: src/gui/dialogs/game_load.cpp -=================================================================== ---- src/gui/dialogs/game_load.cpp (revision 54624) -+++ src/gui/dialogs/game_load.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/game_load.hpp" - --#include "foreach.hpp" - #include "formula_string_utils.hpp" - #include "gettext.hpp" - #include "game_config.hpp" -@@ -43,6 +42,7 @@ - - #include <cctype> - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - namespace gui2 { - -@@ -151,7 +151,7 @@ - tlistbox& list = find_widget<tlistbox>(&window, "savegame_list", false); - list.clear(); - -- foreach(const savegame::save_info game, games) { -+ BOOST_FOREACH(const savegame::save_info game, games) { - std::map<std::string, string_map> data; - string_map item; - -@@ -193,7 +193,7 @@ - find_widget<tlabel>(*it, "filename", false); - - bool found = false; -- foreach (const std::string& word, words){ -+ BOOST_FOREACH(const std::string& word, words){ - found = std::search(filename_label.label().str().begin() - , filename_label.label().str().end() - , word.begin(), word.end() -Index: src/gui/dialogs/lobby_main.cpp -=================================================================== ---- src/gui/dialogs/lobby_main.cpp (revision 54624) -+++ src/gui/dialogs/lobby_main.cpp (revision 54625) -@@ -38,7 +38,6 @@ - #include "gui/widgets/toggle_panel.hpp" - #include "gui/widgets/tree_view_node.hpp" - --#include "foreach.hpp" - #include "formula_string_utils.hpp" - #include "game_preferences.hpp" - #include "gettext.hpp" -@@ -50,6 +49,7 @@ - #include "sound.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_network("network"); - #define DBG_NW LOG_STREAM(debug, log_network) -@@ -499,14 +499,14 @@ - void modify_grid_with_data(tgrid* grid, const std::map<std::string, string_map>& map) - { - typedef std::map<std::string, string_map> strstrmap; -- foreach (const strstrmap::value_type v, map) { -+ BOOST_FOREACH(const strstrmap::value_type v, map) { - const std::string& key = v.first; - const string_map& strmap = v.second; - twidget* w = grid->find(key, false); - if (w == NULL) continue; - tcontrol* c = dynamic_cast<tcontrol*>(w); - if (c == NULL) continue; -- foreach (const string_map::value_type& vv, strmap) { -+ BOOST_FOREACH(const string_map::value_type& vv, strmap) { - if (vv.first == "label") { - c->set_label(vv.second); - } else if (vv.first == "tooltip") { -@@ -816,7 +816,7 @@ - player_list_.other_games.tree->clear(); - player_list_.other_rooms.tree->clear(); - -- foreach (user_info* userptr, lobby_info_.users_sorted()) -+ BOOST_FOREACH(user_info* userptr, lobby_info_.users_sorted()) - { - user_info& user = *userptr; - tsub_player_list* target_list(NULL); -@@ -1093,7 +1093,7 @@ - - tlobby_chat_window* tlobby_main::search_create_window(const std::string& name, bool whisper, bool open_new) - { -- foreach (tlobby_chat_window& t, open_windows_) { -+ BOOST_FOREACH(tlobby_chat_window& t, open_windows_) { - if (t.name == name && t.whisper == whisper) return &t; - } - if (open_new) { -@@ -1477,7 +1477,7 @@ - //TODO: this should really open a nice join room dialog instead - std::stringstream ss; - ss << "Rooms:"; -- foreach (const config& r, rooms.child_range("room")) { -+ BOOST_FOREACH(const config& r, rooms.child_range("room")) { - ss << " " << r["name"]; - } - add_active_window_message("server", ss.str()); -@@ -1667,7 +1667,7 @@ - const std::vector<user_info>& match_infos = lobby_info_.users(); - std::vector<std::string> matches; - -- foreach(const user_info& ui, match_infos) { -+ BOOST_FOREACH(const user_info& ui, match_infos) { - if(ui.name != preferences::login()) { - matches.push_back(ui.name); - } -@@ -1694,7 +1694,7 @@ - { - lobby_info_.clear_game_filter(); - -- foreach (const std::string& s, utils::split(filter_text_->get_value(), ' ')) { -+ BOOST_FOREACH(const std::string& s, utils::split(filter_text_->get_value(), ' ')) { - lobby_info_.add_game_filter(new game_filter_general_string_part(s)); - } - //TODO: make changing friend/ignore lists trigger a refresh -Index: src/gui/dialogs/campaign_difficulty.cpp -=================================================================== ---- src/gui/dialogs/campaign_difficulty.cpp (revision 54624) -+++ src/gui/dialogs/campaign_difficulty.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/campaign_difficulty.hpp" - --#include "foreach.hpp" - #include "gui/auxiliary/old_markup.hpp" - #ifdef GUI2_EXPERIMENTAL_LISTBOX - #include "gui/widgets/list.hpp" -@@ -27,6 +26,8 @@ - #include "gui/widgets/settings.hpp" - #include "gui/widgets/window.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - /*WIKI -@@ -65,7 +66,7 @@ - tcampaign_difficulty::tcampaign_difficulty(const std::vector<std::string>& items) - : index_(-1), items_() - { -- foreach(const std::string& it, items) { -+ BOOST_FOREACH(const std::string& it, items) { - items_.push_back(tlegacy_menu_item(it)); - } - } -@@ -77,7 +78,7 @@ - - std::map<std::string, string_map> data; - -- foreach(const tlegacy_menu_item& item, items_) { -+ BOOST_FOREACH(const tlegacy_menu_item& item, items_) { - if(item.is_default()) { - index_ = list.get_item_count(); - } -Index: src/gui/dialogs/unit_create.cpp -=================================================================== ---- src/gui/dialogs/unit_create.cpp (revision 54624) -+++ src/gui/dialogs/unit_create.cpp (revision 54625) -@@ -27,9 +27,10 @@ - #include "gui/widgets/settings.hpp" - #include "gui/widgets/toggle_button.hpp" - #include "gui/widgets/window.hpp" --#include "foreach.hpp" - #include "unit_types.hpp" - -+#include <boost/foreach.hpp> -+ - namespace { - static std::string last_chosen_type_id = ""; - static unit_race::GENDER last_gender = unit_race::MALE; -@@ -109,7 +110,7 @@ - - std::vector< std::string > type_labels, race_labels; - -- foreach (const unit_type_data::unit_type_map::value_type &i, unit_types.types()) -+ BOOST_FOREACH(const unit_type_data::unit_type_map::value_type &i, unit_types.types()) - { - unit_types.find(i.first, unit_type::HELP_INDEX); - -Index: src/gui/dialogs/formula_debugger.cpp -=================================================================== ---- src/gui/dialogs/formula_debugger.cpp (revision 54624) -+++ src/gui/dialogs/formula_debugger.cpp (revision 54625) -@@ -21,10 +21,10 @@ - #include "gui/widgets/button.hpp" - #include "gui/widgets/settings.hpp" - #include "gui/widgets/window.hpp" --#include "../../foreach.hpp" - #include "../../formula_debugger.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - namespace gui2 { - -@@ -73,7 +73,7 @@ - std::stringstream stack_text; - std::string indent = " "; - int c = 0; -- foreach (const game_logic::debug_info &i, fdb_.get_call_stack()) { -+ BOOST_FOREACH(const game_logic::debug_info &i, fdb_.get_call_stack()) { - for(int d = 0; d < c; ++d) { - stack_text << indent; - } -@@ -92,7 +92,7 @@ - &window, "execution", false, true); - - std::stringstream execution_text; -- foreach (const game_logic::debug_info &i, fdb_.get_execution_trace()) { -+ BOOST_FOREACH(const game_logic::debug_info &i, fdb_.get_execution_trace()) { - for(int d = 0; d < i.level(); ++d) { - execution_text << indent; - } -Index: src/gui/dialogs/title_screen.cpp -=================================================================== ---- src/gui/dialogs/title_screen.cpp (revision 54624) -+++ src/gui/dialogs/title_screen.cpp (revision 54625) -@@ -35,6 +35,7 @@ - #include "preferences_display.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #include <algorithm> - -@@ -306,7 +307,7 @@ - WRN_CF << "There are not tips of day available.\n"; - } - -- foreach(const ttip& tip, tips) { -+ BOOST_FOREACH(const ttip& tip, tips) { - - string_map widget; - std::map<std::string, string_map> page; -Index: src/gui/dialogs/addon_list.cpp -=================================================================== ---- src/gui/dialogs/addon_list.cpp (revision 54624) -+++ src/gui/dialogs/addon_list.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/addon_list.hpp" - --#include "foreach.hpp" - #ifdef GUI2_EXPERIMENTAL_LISTBOX - #include "gui/widgets/list.hpp" - #else -@@ -26,6 +25,8 @@ - #include "gui/widgets/settings.hpp" - #include "gui/widgets/window.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - /*WIKI -@@ -70,7 +71,7 @@ - * @todo do we really want to keep the length limit for the various - * items? - */ -- foreach(const config &c, cfg_.child_range("campaign")) { -+ BOOST_FOREACH(const config &c, cfg_.child_range("campaign")) { - std::map<std::string, string_map> data; - string_map item; - -Index: src/gui/dialogs/campaign_selection.cpp -=================================================================== ---- src/gui/dialogs/campaign_selection.cpp (revision 54624) -+++ src/gui/dialogs/campaign_selection.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/campaign_selection.hpp" - --#include "foreach.hpp" - #include "gui/dialogs/helper.hpp" - #include "gui/widgets/image.hpp" - #ifdef GUI2_EXPERIMENTAL_LISTBOX -@@ -34,6 +33,7 @@ - #include "serialization/string_utils.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - namespace gui2 { - -@@ -140,7 +140,7 @@ - &window, "campaign_details", false); - - unsigned id = 0; -- foreach(const config &campaign, campaigns_) { -+ BOOST_FOREACH(const config &campaign, campaigns_) { - - /*** Add tree item ***/ - tree_group_field["label"] = campaign["icon"]; -@@ -206,7 +206,7 @@ - tmulti_page& multi_page = find_widget<tmulti_page>( - &window, "campaign_details", false); - -- foreach (const config &c, campaigns_) { -+ BOOST_FOREACH(const config &c, campaigns_) { - - /*** Add list item ***/ - string_map list_item; -Index: src/gui/dialogs/mp_connect.cpp -=================================================================== ---- src/gui/dialogs/mp_connect.cpp (revision 54624) -+++ src/gui/dialogs/mp_connect.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/mp_connect.hpp" - --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "gui/dialogs/field.hpp" - #include "gui/widgets/button.hpp" -@@ -30,6 +29,7 @@ - #include "video.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - namespace gui2 { - -@@ -90,7 +90,7 @@ - const std::vector<game_config::server_info>& - pref_servers = preferences::server_list(); - -- foreach(const game_config::server_info& server, pref_servers) { -+ BOOST_FOREACH(const game_config::server_info& server, pref_servers) { - - std::map<std::string, string_map> data; - string_map item; -Index: src/gui/dialogs/language_selection.cpp -=================================================================== ---- src/gui/dialogs/language_selection.cpp (revision 54624) -+++ src/gui/dialogs/language_selection.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/language_selection.hpp" - --#include "foreach.hpp" - #ifdef GUI2_EXPERIMENTAL_LISTBOX - #include "gui/widgets/list.hpp" - #else -@@ -28,6 +27,8 @@ - #include "language.hpp" - #include "preferences.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - /*WIKI -@@ -65,7 +66,7 @@ - - const std::vector<language_def>& languages = get_languages(); - const language_def& current_language = get_language(); -- foreach(const language_def& lang, languages) { -+ BOOST_FOREACH(const language_def& lang, languages) { - string_map item; - item.insert(std::make_pair("label", lang.language)); - -Index: src/gui/dialogs/mp_create_game.cpp -=================================================================== ---- src/gui/dialogs/mp_create_game.cpp (revision 54624) -+++ src/gui/dialogs/mp_create_game.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/mp_create_game.hpp" - --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "gettext.hpp" - #include "gui/dialogs/field.hpp" -@@ -35,6 +34,7 @@ - #ifdef GUI2_EXPERIMENTAL_LISTBOX - #include <boost/bind.hpp> - #endif -+#include <boost/foreach.hpp> - namespace gui2 { - - REGISTER_DIALOG(mp_create_game) -@@ -101,7 +101,7 @@ - std::vector<std::string> maps; - get_files_in_dir(get_user_data_dir() + "/editor/maps", &maps, NULL, FILE_NAME_ONLY); - -- foreach(const std::string& map, maps) { -+ BOOST_FOREACH(const std::string& map, maps) { - std::map<std::string, t_string> item; - item.insert(std::make_pair("label", map)); - list->add_row(item); -@@ -110,7 +110,7 @@ - - // Standard maps - int i = 0; -- foreach (const config &map, cfg_.child_range("multiplayer")) -+ BOOST_FOREACH(const config &map, cfg_.child_range("multiplayer")) - { - if (map["allow_new_game"].to_bool(true)) { - string_map item; -Index: src/gui/dialogs/network_transmission.cpp -=================================================================== ---- src/gui/dialogs/network_transmission.cpp (revision 54624) -+++ src/gui/dialogs/network_transmission.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/network_transmission.hpp" - --#include "foreach.hpp" - #include "formula_string_utils.hpp" - #include "gettext.hpp" - #include "gui/widgets/button.hpp" -Index: src/gui/dialogs/addon/description.cpp -=================================================================== ---- src/gui/dialogs/addon/description.cpp (revision 54624) -+++ src/gui/dialogs/addon/description.cpp (revision 54625) -@@ -17,14 +17,15 @@ - - #include "gui/dialogs/addon/description.hpp" - --#include "foreach.hpp" - #include "gui/widgets/settings.hpp" - #include "language.hpp" - -+#include <boost/foreach.hpp> -+ - namespace { - std::string langcode_to_string(const std::string& lcode) - { -- foreach(const language_def& ld, get_languages()) { -+ BOOST_FOREACH(const language_def& ld, get_languages()) { - if(ld.localename == lcode || ld.localename.substr(0, 2) == lcode) { - return ld.language; - } -@@ -90,7 +91,7 @@ - - std::string languages; - -- foreach(const std::string& lc, addon.translations) { -+ BOOST_FOREACH(const std::string& lc, addon.translations) { - const std::string& langlabel = langcode_to_string(lc); - if(!langlabel.empty()) { - if(!languages.empty()) { -Index: src/gui/dialogs/addon/uninstall_list.cpp -=================================================================== ---- src/gui/dialogs/addon/uninstall_list.cpp (revision 54624) -+++ src/gui/dialogs/addon/uninstall_list.cpp (revision 54625) -@@ -15,7 +15,6 @@ - - #include "gui/dialogs/addon/uninstall_list.hpp" - --#include "foreach.hpp" - #include "gui/widgets/grid.hpp" - #ifdef GUI2_EXPERIMENTAL_LISTBOX - #include "gui/widgets/list.hpp" -@@ -26,6 +25,8 @@ - #include "gui/widgets/toggle_button.hpp" - #include "gui/widgets/window.hpp" - -+#include <boost/foreach.hpp> -+ - #include <algorithm> - - namespace { -@@ -50,7 +51,7 @@ - this->names_.clear(); - this->selections_.clear(); - -- foreach(const std::string& id, this->ids_) { -+ BOOST_FOREACH(const std::string& id, this->ids_) { - this->names_.push_back(make_addon_name(id)); - this->selections_[id] = false; - -@@ -87,7 +88,7 @@ - std::vector<std::string> retv; - - typedef std::map<std::string, bool> selections_map_type; -- foreach(const selections_map_type::value_type& entry, this->selections_) { -+ BOOST_FOREACH(const selections_map_type::value_type& entry, this->selections_) { - if(entry.second) { - retv.push_back(entry.first); - } -Index: src/gui/dialogs/chat_log.cpp -=================================================================== ---- src/gui/dialogs/chat_log.cpp (revision 54624) -+++ src/gui/dialogs/chat_log.cpp (revision 54625) -@@ -28,7 +28,6 @@ - #include "gui/widgets/window.hpp" - #include "gui/widgets/slider.hpp" - --#include "../../foreach.hpp" - #include "../../gamestatus.hpp" - #include "../../log.hpp" - #include "../../resources.hpp" -@@ -38,6 +37,7 @@ - #include <vector> - #include <boost/bind.hpp> - #include <boost/shared_ptr.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_chat_log("chat_log"); - #define DBG_CHAT_LOG LOG_STREAM(debug, log_chat_log) -@@ -113,7 +113,7 @@ - std::stringstream str; - LOG_CHAT_LOG << "entering tchat_log::model::add_row_to_chat_message_list\n"; - if (first<last) { -- foreach (const chat_msg &t, make_pair(chat_log_history.begin()+first,chat_log_history.begin()+last)) -+ BOOST_FOREACH(const chat_msg &t, make_pair(chat_log_history.begin()+first,chat_log_history.begin()+last)) - { - std::string prefix("/me"); - bool me = false; -Index: src/gui/dialogs/mp_change_control.cpp -=================================================================== ---- src/gui/dialogs/mp_change_control.cpp (revision 54624) -+++ src/gui/dialogs/mp_change_control.cpp (revision 54625) -@@ -36,7 +36,7 @@ - #include <vector> - #include <boost/bind.hpp> - #include <boost/shared_ptr.hpp> --#include <gui/widgets/button.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_gui("gui/dialogs/mp_change_control"); - #define ERR_GUI LOG_STREAM(err, log_gui) -@@ -184,7 +184,7 @@ - - int i = 0; // because we need to know which row contains the controlling player - -- foreach (const std::string &nick, nicks) -+ BOOST_FOREACH(const std::string &nick, nicks) - { - if (side_number_ <= static_cast<int>(resources::teams->size()) && - resources::teams->at(side_number_-1).current_player() == nick) -Index: src/gui/dialogs/message.cpp -=================================================================== ---- src/gui/dialogs/message.cpp (revision 54624) -+++ src/gui/dialogs/message.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/message.hpp" - --#include "foreach.hpp" - #include "gettext.hpp" - #include "gui/widgets/button.hpp" - #include "gui/widgets/image.hpp" -@@ -26,6 +25,8 @@ - #include "gui/widgets/window.hpp" - #include "log.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - REGISTER_DIALOG(message) -@@ -97,7 +98,7 @@ - - void tmessage::post_show(twindow& /*window*/) - { -- foreach(tbutton_status& button_status, buttons_) { -+ BOOST_FOREACH(tbutton_status& button_status, buttons_) { - button_status.button = NULL; - } - } -Index: src/gui/dialogs/lobby/lobby_data.cpp -=================================================================== ---- src/gui/dialogs/lobby/lobby_data.cpp (revision 54624) -+++ src/gui/dialogs/lobby/lobby_data.cpp (revision 54625) -@@ -18,7 +18,6 @@ - #include "config.hpp" - #include "game_preferences.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "formula_string_utils.hpp" - #include "gettext.hpp" - #include "network.hpp" -@@ -27,6 +26,8 @@ - #include "map_exception.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - #include <iterator> - - static lg::log_domain log_config("config"); -@@ -89,7 +90,7 @@ - void room_info::process_room_members(const config& data) - { - members_.clear(); -- foreach (const config& m, data.child_range("member")) { -+ BOOST_FOREACH(const config& m, data.child_range("member")) { - members_.insert(m["name"]); - } - } -@@ -254,7 +255,7 @@ - if (const config& hashes = game_config.child("multiplayer_hashes")) { - std::string hash = game["hash"]; - bool hash_found = false; -- foreach (const config::attribute &i, hashes.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, hashes.attribute_range()) { - if (i.first == game["mp_scenario"] && i.second == hash) { - hash_found = true; - break; -@@ -357,7 +358,7 @@ - - game_filter_stack::~game_filter_stack() - { -- foreach (game_filter_base* f, filters_) { -+ BOOST_FOREACH(game_filter_base* f, filters_) { - delete f; - } - } -@@ -369,7 +370,7 @@ - - void game_filter_stack::clear() - { -- foreach (game_filter_base* f, filters_) { -+ BOOST_FOREACH(game_filter_base* f, filters_) { - delete f; - } - filters_.clear(); -@@ -377,7 +378,7 @@ - - bool game_filter_and_stack::match(const game_info &game) const - { -- foreach (game_filter_base* f, filters_) { -+ BOOST_FOREACH(game_filter_base* f, filters_) { - if (!f->match(game)) return false; - } - return true; -Index: src/gui/dialogs/lobby/lobby_info.cpp -=================================================================== ---- src/gui/dialogs/lobby/lobby_info.cpp (revision 54624) -+++ src/gui/dialogs/lobby/lobby_info.cpp (revision 54625) -@@ -18,7 +18,6 @@ - #include "config.hpp" - #include "game_preferences.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "formula_string_utils.hpp" - #include "gettext.hpp" - #include "network.hpp" -@@ -27,6 +26,8 @@ - #include "map_exception.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - #include <iterator> - - static lg::log_domain log_config("config"); -@@ -66,7 +67,7 @@ - - void lobby_info::delete_games() - { -- foreach (const game_info_map::value_type& v, games_by_id_) { -+ BOOST_FOREACH(const game_info_map::value_type& v, games_by_id_) { - delete v.second; - } - } -@@ -76,7 +77,7 @@ - std::string dump_games_map(const lobby_info::game_info_map& games) - { - std::stringstream ss; -- foreach (const lobby_info::game_info_map::value_type& v, games) { -+ BOOST_FOREACH(const lobby_info::game_info_map::value_type& v, games) { - const game_info& game = *v.second; - ss << "G" << game.id << "(" << game.name << ") " << game.display_status_string() << " "; - } -@@ -87,7 +88,7 @@ - std::string dump_games_config(const config& gamelist) - { - std::stringstream ss; -- foreach (const config& c, gamelist.child_range("game")) { -+ BOOST_FOREACH(const config& c, gamelist.child_range("game")) { - ss << "g" << c["id"] << "(" << c["name"] << ") " << c[config::diff_track_attribute] << " "; - } - ss << "\n"; -@@ -103,7 +104,7 @@ - gamelist_initialized_ = true; - delete_games(); - games_by_id_.clear(); -- foreach (const config& c, gamelist_.child("gamelist").child_range("game")) { -+ BOOST_FOREACH(const config& c, gamelist_.child("gamelist").child_range("game")) { - game_info* game = new game_info(c, game_config_); - games_by_id_[game->id] = game; - } -@@ -180,10 +181,10 @@ - { - SCOPE_LB; - users_.clear(); -- foreach (const config& c, gamelist_.child_range("user")) { -+ BOOST_FOREACH(const config& c, gamelist_.child_range("user")) { - users_.push_back(user_info(c)); - } -- foreach (user_info& ui, users_) { -+ BOOST_FOREACH(user_info& ui, users_) { - if (ui.game_id != 0) { - game_info* g = get_game_by_id(ui.game_id); - if (g == NULL) { -@@ -235,7 +236,7 @@ - - room_info* lobby_info::get_room(const std::string &name) - { -- foreach (room_info& r, rooms_) { -+ BOOST_FOREACH(room_info& r, rooms_) { - if (r.name() == name) return &r; - } - return NULL; -@@ -243,7 +244,7 @@ - - const room_info* lobby_info::get_room(const std::string &name) const - { -- foreach (const room_info& r, rooms_) { -+ BOOST_FOREACH(const room_info& r, rooms_) { - if (r.name() == name) return &r; - } - return NULL; -@@ -301,7 +302,7 @@ - games_filtered_.clear(); - games_visibility_.clear(); - games_.clear(); -- foreach (const game_info_map::value_type& v, games_by_id_) { -+ BOOST_FOREACH(const game_info_map::value_type& v, games_by_id_) { - games_.push_back(v.second); - } - } -@@ -310,7 +311,7 @@ - { - games_filtered_.clear(); - games_visibility_.clear(); -- foreach (game_info* g, games_) { -+ BOOST_FOREACH(game_info* g, games_) { - game_info& gi = *g; - bool show = game_filter_.match(gi); - if (game_filter_invert_) { -@@ -325,7 +326,7 @@ - - void lobby_info::update_user_statuses(int game_id, const room_info *room) - { -- foreach (user_info& user, users_) { -+ BOOST_FOREACH(user_info& user, users_) { - user.update_state(game_id, room); - } - } -@@ -365,7 +366,7 @@ - void lobby_info::sort_users(bool by_name, bool by_relation) - { - users_sorted_.clear(); -- foreach (user_info& u, users_) { -+ BOOST_FOREACH(user_info& u, users_) { - users_sorted_.push_back(&u); - } - if (by_name) { -Index: src/gui/dialogs/game_save.cpp -=================================================================== ---- src/gui/dialogs/game_save.cpp (revision 54624) -+++ src/gui/dialogs/game_save.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/dialogs/game_save.hpp" - --#include "foreach.hpp" - #include "gettext.hpp" - #include "gui/dialogs/field.hpp" - #include "gui/widgets/button.hpp" -Index: src/gui/widgets/settings.cpp -=================================================================== ---- src/gui/widgets/settings.cpp (revision 54624) -+++ src/gui/widgets/settings.cpp (revision 54625) -@@ -25,7 +25,6 @@ - #include "asserts.hpp" - #include "config_cache.hpp" - #include "filesystem.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/tips.hpp" -@@ -35,6 +34,8 @@ - #include "serialization/schema_validator.hpp" - #include "formula_string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - bool new_widgets = false; -@@ -283,12 +284,12 @@ - , const config& - , const char *key)> > thack; - -- foreach(thack& widget_type, registred_widget_type()) { -+ BOOST_FOREACH(thack& widget_type, registred_widget_type()) { - widget_type.second(*this, widget_type.first, cfg, NULL); - } - - /***** Window types *****/ -- foreach (const config &w, cfg.child_range("window")) { -+ BOOST_FOREACH(const config &w, cfg.child_range("window")) { - std::pair<std::string, twindow_builder> child; - child.first = child.second.read(w); - window_types.insert(child); -@@ -423,7 +424,7 @@ - const std::string& definition_type - , const std::vector<tcontrol_definition_ptr>& definitions) - { -- foreach(const tcontrol_definition_ptr& def, definitions) { -+ BOOST_FOREACH(const tcontrol_definition_ptr& def, definitions) { - - // We assume all definitions are unique if not we would leak memory. - assert(control_definition[definition_type].find(def->id) -@@ -497,7 +498,7 @@ - ERR_GUI_P << e.message; - } - // Parse guis -- foreach (const config &g, cfg.child_range("gui")) { -+ BOOST_FOREACH(const config &g, cfg.child_range("gui")) { - std::pair<std::string, tgui_definition> child; - child.first = child.second.read(g); - guis.insert(child); -Index: src/gui/widgets/window.cpp -=================================================================== ---- src/gui/widgets/window.cpp (revision 54624) -+++ src/gui/widgets/window.cpp (revision 54625) -@@ -23,7 +23,6 @@ - #include "gui/widgets/window_private.hpp" - - #include "font.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "gettext.hpp" - #include "log.hpp" -@@ -44,6 +43,7 @@ - #include "video.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #define LOG_SCOPE_HEADER get_control_type() + " [" + id() + "] " + __func__ - #define LOG_HEADER LOG_SCOPE_HEADER + ':' -@@ -716,7 +716,7 @@ - return; - } - -- foreach(std::vector<twidget*>& item, dirty_list_) { -+ BOOST_FOREACH(std::vector<twidget*>& item, dirty_list_) { - - assert(!item.empty()); - -@@ -1047,12 +1047,12 @@ - { - // evaluate the group sizes - typedef std::pair<const std::string, tlinked_size> hack; -- foreach(hack& linked_size, linked_size_) { -+ BOOST_FOREACH(hack& linked_size, linked_size_) { - - tpoint max_size(0, 0); - - // Determine the maximum size. -- foreach(twidget* widget, linked_size.second.widgets) { -+ BOOST_FOREACH(twidget* widget, linked_size.second.widgets) { - - const tpoint size = widget->get_best_size(); - -@@ -1065,7 +1065,7 @@ - } - - // Set the maximum size. -- foreach(twidget* widget, linked_size.second.widgets) { -+ BOOST_FOREACH(twidget* widget, linked_size.second.widgets) { - - tpoint size = widget->get_best_size(); - -Index: src/gui/widgets/stacked_widget.cpp -=================================================================== ---- src/gui/widgets/stacked_widget.cpp (revision 54624) -+++ src/gui/widgets/stacked_widget.cpp (revision 54625) -@@ -17,13 +17,13 @@ - - #include "gui/widgets/stacked_widget.hpp" - --#include "foreach.hpp" - #include "gui/auxiliary/widget_definition/stacked_widget.hpp" - #include "gui/auxiliary/window_builder/stacked_widget.hpp" - #include "gui/widgets/settings.hpp" - #include "gui/widgets/generator.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - namespace gui2 { - -@@ -83,7 +83,7 @@ - { - assert(generator_); - string_map empty_data; -- foreach(const tbuilder_grid_const_ptr& builder, widget_builder) { -+ BOOST_FOREACH(const tbuilder_grid_const_ptr& builder, widget_builder) { - generator_->create_item(-1, builder, empty_data, NULL); - } - swap_grid(NULL, &grid(), generator_, "_content_grid"); -Index: src/gui/widgets/text_box.cpp -=================================================================== ---- src/gui/widgets/text_box.cpp (revision 54624) -+++ src/gui/widgets/text_box.cpp (revision 54625) -@@ -18,7 +18,6 @@ - #include "gui/widgets/text_box.hpp" - - #include "font.hpp" --#include "foreach.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/widget_definition/text_box.hpp" - #include "gui/auxiliary/window_builder/text_box.hpp" -@@ -27,6 +26,7 @@ - #include "game_preferences.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #define LOG_SCOPE_HEADER get_control_type() + " [" + id() + "] " + __func__ - #define LOG_HEADER LOG_SCOPE_HEADER + ':' -@@ -162,7 +162,7 @@ - const int max_width = get_text_maximum_width(); - const int max_height = get_text_maximum_height(); - -- foreach(tcanvas& tmp, canvas()) { -+ BOOST_FOREACH(tcanvas& tmp, canvas()) { - - tmp.set_variable("text", variant(get_value())); - tmp.set_variable("text_x_offset", variant(text_x_offset_)); -@@ -260,7 +260,7 @@ - - // Since this variable doesn't change set it here instead of in - // update_canvas(). -- foreach(tcanvas& tmp, canvas()) { -+ BOOST_FOREACH(tcanvas& tmp, canvas()) { - tmp.set_variable("text_font_height", variant(text_height_)); - } - -Index: src/gui/widgets/toggle_panel.cpp -=================================================================== ---- src/gui/widgets/toggle_panel.cpp (revision 54624) -+++ src/gui/widgets/toggle_panel.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/widgets/toggle_panel.hpp" - --#include "foreach.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/widget_definition/toggle_panel.hpp" - #include "gui/auxiliary/window_builder/toggle_panel.hpp" -@@ -26,6 +25,7 @@ - #include "sound.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #define LOG_SCOPE_HEADER get_control_type() + " [" + id() + "] " + __func__ - #define LOG_HEADER LOG_SCOPE_HEADER + ':' -@@ -72,7 +72,7 @@ - { - // typedef boost problem work around. - typedef std::pair<std::string, string_map> hack ; -- foreach(const hack& item, data) { -+ BOOST_FOREACH(const hack& item, data) { - tcontrol* control = dynamic_cast<tcontrol*>(find(item.first, false)); - if(control) { - control->set_members(item.second); -Index: src/gui/widgets/tree_view_node.cpp -=================================================================== ---- src/gui/widgets/tree_view_node.cpp (revision 54624) -+++ src/gui/widgets/tree_view_node.cpp (revision 54625) -@@ -24,6 +24,7 @@ - #include "gui/widgets/tree_view.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #define LOG_SCOPE_HEADER \ - get_control_type() + " [" + tree_view().id() + "] " + __func__ -@@ -48,7 +49,7 @@ - grid_.set_parent(this); - set_parent(&parent_tree_view); - if(id != "root") { -- foreach(const tnode_definition& node_definition, node_definitions_) { -+ BOOST_FOREACH(const tnode_definition& node_definition, node_definitions_) { - if(node_definition.id == id) { - node_definition.builder->build(&grid_); - init_grid(&grid_, data); -@@ -217,7 +218,7 @@ - int height_reduction = 0; - - if(!is_folded()) { -- foreach(const ttree_view_node& node, children_) { -+ BOOST_FOREACH(const ttree_view_node& node, children_) { - height_reduction += node.get_current_size().y; - } - } -@@ -300,7 +301,7 @@ - return; - } - -- foreach(ttree_view_node& node, children_) { -+ BOOST_FOREACH(ttree_view_node& node, children_) { - std::vector<twidget*> child_call_stack = call_stack; - node.impl_populate_dirty_list(caller, child_call_stack); - } -@@ -455,7 +456,7 @@ - } - - DBG_GUI_L << LOG_HEADER << " set children.\n"; -- foreach(ttree_view_node& node, children_) { -+ BOOST_FOREACH(ttree_view_node& node, children_) { - origin.y += node.place(indention_step_size, origin, width); - } - -@@ -477,7 +478,7 @@ - return; - } - -- foreach(ttree_view_node& node, children_) { -+ BOOST_FOREACH(ttree_view_node& node, children_) { - node.set_visible_area(area); - } - } -@@ -490,7 +491,7 @@ - return; - } - -- foreach(ttree_view_node& node, children_) { -+ BOOST_FOREACH(ttree_view_node& node, children_) { - node.impl_draw_children(frame_buffer); - } - } -Index: src/gui/widgets/settings.hpp -=================================================================== ---- src/gui/widgets/settings.hpp (revision 54624) -+++ src/gui/widgets/settings.hpp (revision 54625) -@@ -24,6 +24,7 @@ - #include "gui/auxiliary/widget_definition/window.hpp" - - #include <boost/function.hpp> -+#include <boost/foreach.hpp> - - #include <string> - #include <vector> -@@ -124,7 +125,7 @@ - { - std::vector<tcontrol_definition_ptr> definitions; - -- foreach(const config& definition -+ BOOST_FOREACH(const config& definition - , cfg.child_range(key ? key : definition_type + "_definition")) { - - definitions.push_back(new T(definition)); -Index: src/gui/widgets/slider.cpp -=================================================================== ---- src/gui/widgets/slider.cpp (revision 54624) -+++ src/gui/widgets/slider.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/widgets/slider.hpp" - --#include "foreach.hpp" - #include "formatter.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/widget_definition/slider.hpp" -@@ -27,6 +26,7 @@ - #include "sound.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #define LOG_SCOPE_HEADER get_control_type() + " [" + id() + "] " + __func__ - #define LOG_HEADER LOG_SCOPE_HEADER + ':' -@@ -232,7 +232,7 @@ - // Inherited. - tscrollbar_::update_canvas(); - -- foreach(tcanvas& tmp, canvas()) { -+ BOOST_FOREACH(tcanvas& tmp, canvas()) { - tmp.set_variable("text", variant(get_value_label())); - } - } -Index: src/gui/widgets/scrollbar.cpp -=================================================================== ---- src/gui/widgets/scrollbar.cpp (revision 54624) -+++ src/gui/widgets/scrollbar.cpp (revision 54625) -@@ -17,11 +17,11 @@ - - #include "gui/widgets/scrollbar.hpp" - --#include "foreach.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/widgets/window.hpp" // Needed for invalidate_layout() - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #define LOG_SCOPE_HEADER get_control_type() + " [" + id() + "] " + __func__ - #define LOG_HEADER LOG_SCOPE_HEADER + ':' -@@ -132,7 +132,7 @@ - - void tscrollbar_::update_canvas() { - -- foreach(tcanvas& tmp, canvas()) { -+ BOOST_FOREACH(tcanvas& tmp, canvas()) { - tmp.set_variable("positioner_offset", variant(positioner_offset_)); - tmp.set_variable("positioner_length", variant(positioner_length_)); - } -@@ -287,7 +287,7 @@ - void tscrollbar_::load_config_extra() - { - // These values won't change so set them here. -- foreach(tcanvas& tmp, canvas()) { -+ BOOST_FOREACH(tcanvas& tmp, canvas()) { - tmp.set_variable("offset_before", variant(offset_before())); - tmp.set_variable("offset_after", variant(offset_after())); - } -Index: src/gui/widgets/grid_private.hpp -=================================================================== ---- src/gui/widgets/grid_private.hpp (revision 54624) -+++ src/gui/widgets/grid_private.hpp (revision 54625) -@@ -33,7 +33,7 @@ - - #include "gui/widgets/grid.hpp" - --#include "foreach.hpp" -+#include <boost/foreach.hpp> - - namespace gui2 { - -@@ -56,7 +56,7 @@ - const tpoint& coordinate, const bool must_be_active) - { - typedef typename tconst_duplicator<W, tgrid::tchild>::type hack; -- foreach(hack& child, grid.children_) { -+ BOOST_FOREACH(hack& child, grid.children_) { - - W* widget = child.widget(); - if(!widget) { -@@ -91,7 +91,7 @@ - } - - typedef typename tconst_duplicator<W, tgrid::tchild>::type hack; -- foreach(hack& child, grid.children_) { -+ BOOST_FOREACH(hack& child, grid.children_) { - - widget = child.widget(); - if(!widget) { -Index: src/gui/widgets/grid.cpp -=================================================================== ---- src/gui/widgets/grid.cpp (revision 54624) -+++ src/gui/widgets/grid.cpp (revision 54625) -@@ -21,6 +21,8 @@ - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/layout_exception.hpp" - -+#include <boost/foreach.hpp> -+ - #include <numeric> - - #define LOG_SCOPE_HEADER "tgrid [" + id() + "] " + __func__ -@@ -48,7 +50,7 @@ - { - // Delete the children in this destructor since resizing a vector copies the - // children and thus frees the child prematurely. -- foreach(tchild& child, children_) { -+ BOOST_FOREACH(tchild& child, children_) { - delete child.widget(); - } - } -@@ -99,7 +101,7 @@ - { - assert(widget); - -- foreach(tchild& child, children_) { -+ BOOST_FOREACH(tchild& child, children_) { - if(child.id() != id) { - - if(recurse) { -@@ -145,7 +147,7 @@ - - void tgrid::remove_child(const std::string& id, const bool find_all) - { -- foreach(tchild& child, children_) { -+ BOOST_FOREACH(tchild& child, children_) { - - if(child.id() == id) { - delete child.widget(); -@@ -160,7 +162,7 @@ - - void tgrid::set_active(const bool active) - { -- foreach(tchild& child, children_) { -+ BOOST_FOREACH(tchild& child, children_) { - - twidget* widget = child.widget(); - if(!widget) { -@@ -186,7 +188,7 @@ - twidget::layout_init(full_initialization); - - // Clear child caches. -- foreach(tchild& child, children_) { -+ BOOST_FOREACH(tchild& child, children_) { - - child.layout_init(full_initialization); - -@@ -426,7 +428,7 @@ - - bool tgrid::can_wrap() const - { -- foreach(const tchild& child, children_) { -+ BOOST_FOREACH(const tchild& child, children_) { - if(child.can_wrap()) { - return true; - } -@@ -485,7 +487,7 @@ - - if(w_size == 0) { - // If all sizes are 0 reset them to 1 -- foreach(unsigned& val, col_grow_factor_) { -+ BOOST_FOREACH(unsigned& val, col_grow_factor_) { - val = 1; - } - w_size = cols_; -@@ -516,7 +518,7 @@ - - if(h_size == 0) { - // If all sizes are 0 reset them to 1 -- foreach(unsigned& val, row_grow_factor_) { -+ BOOST_FOREACH(unsigned& val, row_grow_factor_) { - val = 1; - } - h_size = rows_; -@@ -551,7 +553,7 @@ - // Inherited. - twidget::set_origin(origin); - -- foreach(tchild& child, children_) { -+ BOOST_FOREACH(tchild& child, children_) { - - twidget* widget = child.widget(); - assert(widget); -@@ -567,7 +569,7 @@ - // Inherited. - twidget::set_visible_area(area); - -- foreach(tchild& child, children_) { -+ BOOST_FOREACH(tchild& child, children_) { - - twidget* widget = child.widget(); - assert(widget); -@@ -578,7 +580,7 @@ - - void tgrid::layout_children() - { -- foreach(tchild& child, children_) { -+ BOOST_FOREACH(tchild& child, children_) { - assert(child.widget()); - child.widget()->layout_children(); - } -@@ -589,7 +591,7 @@ - { - assert(!call_stack.empty() && call_stack.back() == this); - -- foreach(tchild& child, children_) { -+ BOOST_FOREACH(tchild& child, children_) { - - assert(child.widget()); - -@@ -627,7 +629,7 @@ - - bool tgrid::has_widget(const twidget* widget) const - { -- foreach(const tchild& child, children_) { -+ BOOST_FOREACH(const tchild& child, children_) { - if(child.widget() == widget) { - return true; - } -@@ -641,7 +643,7 @@ - return false; - } - -- foreach(const tchild& child, children_) { -+ BOOST_FOREACH(const tchild& child, children_) { - const twidget* widget = child.widget(); - assert(widget); - -@@ -936,7 +938,7 @@ - assert(get_visible() == twidget::VISIBLE); - set_dirty(false); - -- foreach(tchild& child, children_) { -+ BOOST_FOREACH(tchild& child, children_) { - - twidget* widget = child.widget(); - assert(widget); -Index: src/gui/widgets/toggle_button.cpp -=================================================================== ---- src/gui/widgets/toggle_button.cpp (revision 54624) -+++ src/gui/widgets/toggle_button.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/widgets/toggle_button.hpp" - --#include "foreach.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/widget_definition/toggle_button.hpp" - #include "gui/auxiliary/window_builder/toggle_button.hpp" -@@ -26,6 +25,7 @@ - #include "sound.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #define LOG_SCOPE_HEADER get_control_type() + " [" + id() + "] " + __func__ - #define LOG_HEADER LOG_SCOPE_HEADER + ':' -@@ -89,7 +89,7 @@ - - // set icon in canvases - std::vector<tcanvas>& canvases = tcontrol::canvas(); -- foreach(tcanvas& canvas, canvases) { -+ BOOST_FOREACH(tcanvas& canvas, canvases) { - canvas.set_variable("icon", variant(icon_name_)); - } - -Index: src/gui/widgets/control.cpp -=================================================================== ---- src/gui/widgets/control.cpp (revision 54624) -+++ src/gui/widgets/control.cpp (revision 54625) -@@ -18,7 +18,6 @@ - #include "control.hpp" - - #include "font.hpp" --#include "foreach.hpp" - #include "formula_string_utils.hpp" - #include "gui/auxiliary/iterator/walker_widget.hpp" - #include "gui/auxiliary/log.hpp" -@@ -29,6 +28,7 @@ - #include "marked-up_text.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #include <iomanip> - -@@ -211,7 +211,7 @@ - void tcontrol::place(const tpoint& origin, const tpoint& size) - { - // resize canvasses -- foreach(tcanvas& canvas, canvas_) { -+ BOOST_FOREACH(tcanvas& canvas, canvas_) { - canvas.set_width(size.x); - canvas.set_height(size.y); - } -@@ -297,7 +297,7 @@ - const int max_height = get_text_maximum_height(); - - // set label in canvases -- foreach(tcanvas& canvas, canvas_) { -+ BOOST_FOREACH(tcanvas& canvas, canvas_) { - canvas.set_variable("text", variant(label_)); - canvas.set_variable("text_markup", variant(use_markup_)); - canvas.set_variable("text_alignment" -Index: src/gui/widgets/scrollbar_container.cpp -=================================================================== ---- src/gui/widgets/scrollbar_container.cpp (revision 54624) -+++ src/gui/widgets/scrollbar_container.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/widgets/scrollbar_container_private.hpp" - --#include "foreach.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/layout_exception.hpp" - #include "gui/widgets/clickable.hpp" -@@ -25,6 +24,7 @@ - #include "gui/widgets/window.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #define LOG_SCOPE_HEADER get_control_type() + " [" + id() + "] " + __func__ - #define LOG_HEADER LOG_SCOPE_HEADER + ':' -@@ -692,7 +692,7 @@ - - /***** Setup the scrollbar buttons *****/ - typedef std::pair<std::string, tscrollbar_::tscroll> hack; -- foreach(const hack& item, scroll_lookup()) { -+ BOOST_FOREACH(const hack& item, scroll_lookup()) { - - // Vertical. - tclickable_* button = find_widget<tclickable_>( -@@ -838,7 +838,7 @@ - { - if(true) { /** @todo scrollbar visibility. */ - /***** set scroll up button status *****/ -- foreach(const std::string& name, button_up_names) { -+ BOOST_FOREACH(const std::string& name, button_up_names) { - tcontrol* button = find_widget<tcontrol>( - vertical_scrollbar_grid_, name, false, false); - -@@ -848,7 +848,7 @@ - } - - /***** set scroll down status *****/ -- foreach(const std::string& name, button_down_names) { -+ BOOST_FOREACH(const std::string& name, button_down_names) { - tcontrol* button = find_widget<tcontrol>( - vertical_scrollbar_grid_, name, false, false); - -@@ -864,7 +864,7 @@ - - if(true) { /** @todo scrollbar visibility. */ - /***** Set scroll left button status *****/ -- foreach(const std::string& name, button_up_names) { -+ BOOST_FOREACH(const std::string& name, button_up_names) { - tcontrol* button = find_widget<tcontrol>( - horizontal_scrollbar_grid_, name, false, false); - -@@ -874,7 +874,7 @@ - } - - /***** Set scroll right button status *****/ -- foreach(const std::string& name, button_down_names) { -+ BOOST_FOREACH(const std::string& name, button_down_names) { - tcontrol* button = find_widget<tcontrol>( - horizontal_scrollbar_grid_, name, false, false); - -Index: src/gui/widgets/generator_private.hpp -=================================================================== ---- src/gui/widgets/generator_private.hpp (revision 54624) -+++ src/gui/widgets/generator_private.hpp (revision 54625) -@@ -19,12 +19,13 @@ - #include "gui/widgets/generator.hpp" - - #include "asserts.hpp" --#include "foreach.hpp" - #include "gui/widgets/grid.hpp" - #include "gui/widgets/selectable.hpp" - #include "gui/widgets/toggle_button.hpp" - #include "gui/widgets/toggle_panel.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - /** -@@ -584,7 +585,7 @@ - /** Inherited from tgenerator_. */ - void clear() - { -- foreach(titem* item, items_) { -+ BOOST_FOREACH(titem* item, items_) { - delete item; - } - selected_item_count_ = 0; -@@ -750,7 +751,7 @@ - /** Inherited from tgenerator_. */ - void layout_init(const bool full_initialization) - { -- foreach(titem* item, items_) { -+ BOOST_FOREACH(titem* item, items_) { - if(item->grid.get_visible() != twidget::INVISIBLE && item->shown) { - item->grid.layout_init(full_initialization); - } -@@ -804,7 +805,7 @@ - { - assert(this->get_visible() == twidget::VISIBLE); - -- foreach(titem* item, items_) { -+ BOOST_FOREACH(titem* item, items_) { - if(item->grid.get_visible() == twidget::VISIBLE && item->shown) { - item->grid.draw_children(frame_buffer); - } -@@ -815,7 +816,7 @@ - void child_populate_dirty_list(twindow& caller, - const std::vector<twidget*>& call_stack) - { -- foreach(titem* item, items_) { -+ BOOST_FOREACH(titem* item, items_) { - std::vector<twidget*> child_call_stack = call_stack; - item->grid.populate_dirty_list(caller, child_call_stack); - } -@@ -838,7 +839,7 @@ - /** Inherited from widget. */ - bool disable_click_dismiss() const - { -- foreach(titem* item, items_) { -+ BOOST_FOREACH(titem* item, items_) { - if(item->grid.disable_click_dismiss()) { - return true; - } -@@ -974,7 +975,7 @@ - void (*callback)(twidget*)) - { - int i = index; -- foreach(const T& item_data, data) { -+ BOOST_FOREACH(const T& item_data, data) { - create_item(i, list_builder, item_data, callback); - if(i != -1) { - ++i; -Index: src/gui/widgets/generator.cpp -=================================================================== ---- src/gui/widgets/generator.cpp (revision 54624) -+++ src/gui/widgets/generator.cpp (revision 54625) -@@ -19,6 +19,8 @@ - - #include "gui/widgets/window.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - namespace policy { -@@ -678,7 +680,7 @@ - assert(!callback); - - typedef std::pair<std::string, string_map> hack; -- foreach(const hack& item, data) { -+ BOOST_FOREACH(const hack& item, data) { - if(item.first.empty()) { - for(unsigned row = 0; row < grid->get_rows(); ++row) { - for(unsigned col = 0; col < grid->get_cols(); ++col) { -Index: src/gui/widgets/progress_bar.cpp -=================================================================== ---- src/gui/widgets/progress_bar.cpp (revision 54624) -+++ src/gui/widgets/progress_bar.cpp (revision 54625) -@@ -23,6 +23,7 @@ - #include "gui/widgets/settings.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - #define LOG_SCOPE_HEADER get_control_type() + " [" + id() + "] " + __func__ - #define LOG_HEADER LOG_SCOPE_HEADER + ':' -@@ -38,7 +39,7 @@ - if(percentage_ != percentage) { - percentage_ = percentage; - -- foreach(tcanvas& c, canvas()) { -+ BOOST_FOREACH(tcanvas& c, canvas()) { - c.set_variable("percentage", variant(percentage)); - } - -Index: src/gui/auxiliary/widget_definition.hpp -=================================================================== ---- src/gui/auxiliary/widget_definition.hpp (revision 54624) -+++ src/gui/auxiliary/widget_definition.hpp (revision 54625) -@@ -17,9 +17,10 @@ - #define GUI_AUXILIARY_WIDGET_DEFINITION_HPP_INCLUDED - - #include "config.hpp" --#include "foreach.hpp" - #include "gui/auxiliary/canvas.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - /** -@@ -98,7 +99,7 @@ - void load_resolutions(const config &cfg) - { - config::const_child_itors itors = cfg.child_range("resolution"); -- foreach(const config &resolution, itors) { -+ BOOST_FOREACH(const config &resolution, itors) { - resolutions.push_back(new T(resolution)); - } - } -Index: src/gui/auxiliary/event/dispatcher.cpp -=================================================================== ---- src/gui/auxiliary/event/dispatcher.cpp (revision 54624) -+++ src/gui/auxiliary/event/dispatcher.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/auxiliary/event/dispatcher_private.hpp" - --#include "foreach.hpp" - #include "gui/auxiliary/log.hpp" - - namespace gui2 { -Index: src/gui/auxiliary/event/handler.cpp -=================================================================== ---- src/gui/auxiliary/event/handler.cpp (revision 54624) -+++ src/gui/auxiliary/event/handler.cpp (revision 54625) -@@ -18,7 +18,6 @@ - #include "gui/auxiliary/event/handler.hpp" - - #include "clipboard.hpp" --#include "foreach.hpp" - #include "gui/auxiliary/event/dispatcher.hpp" - #include "gui/auxiliary/timer.hpp" - #include "gui/auxiliary/log.hpp" -@@ -28,6 +27,8 @@ - #include "hotkeys.hpp" - #include "video.hpp" - -+#include <boost/foreach.hpp> -+ - #include <cassert> - - /** -@@ -429,7 +430,7 @@ - } - - /***** Set proper state for the other dispatchers. *****/ -- foreach(tdispatcher* dispatcher, dispatchers_) { -+ BOOST_FOREACH(tdispatcher* dispatcher, dispatchers_) { - dynamic_cast<twidget&>(*dispatcher).set_dirty(); - } - -@@ -448,7 +449,7 @@ - - void thandler::activate() - { -- foreach(tdispatcher* dispatcher, dispatchers_) { -+ BOOST_FOREACH(tdispatcher* dispatcher, dispatchers_) { - dispatcher->fire(SDL_ACTIVATE - , dynamic_cast<twidget&>(*dispatcher) - , NULL); -@@ -472,7 +473,7 @@ - * - * For now we use a hack, but would be nice to rewrite it for 1.9/1.11. - */ -- foreach(tdispatcher* dispatcher, dispatchers_) { -+ BOOST_FOREACH(tdispatcher* dispatcher, dispatchers_) { - if(!first) { - /* - * This leaves glitches on window borders if the window beneath it -@@ -503,7 +504,7 @@ - { - DBG_GUI_E << "Firing: " << SDL_VIDEO_RESIZE << ".\n"; - -- foreach(tdispatcher* dispatcher, dispatchers_) { -+ BOOST_FOREACH(tdispatcher* dispatcher, dispatchers_) { - dispatcher->fire(SDL_VIDEO_RESIZE - , dynamic_cast<twidget&>(*dispatcher) - , new_size); -Index: src/gui/auxiliary/canvas.cpp -=================================================================== ---- src/gui/auxiliary/canvas.cpp (revision 54624) -+++ src/gui/auxiliary/canvas.cpp (revision 54625) -@@ -24,7 +24,6 @@ - - #include "config.hpp" - #include "../../image.hpp" --#include "foreach.hpp" - #include "formatter.hpp" - #include "gettext.hpp" - #include "gui/auxiliary/formula.hpp" -@@ -33,6 +32,8 @@ - #include "../../text.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - namespace { -@@ -1455,7 +1456,7 @@ - log_scope2(log_gui_parse, "Canvas: parsing config."); - shapes_.clear(); - -- foreach(const config::any_child& shape, cfg.all_children_range()) { -+ BOOST_FOREACH(const config::any_child& shape, cfg.all_children_range()) { - const std::string &type = shape.key; - const config &data = shape.cfg; - -@@ -1474,7 +1475,7 @@ - } else if(type == "pre_commit") { - - /* note this should get split if more preprocessing is used. */ -- foreach(const config::any_child& function, -+ BOOST_FOREACH(const config::any_child& function, - data.all_children_range()) { - - if(function.key == "blur") { -Index: src/gui/auxiliary/window_builder.cpp -=================================================================== ---- src/gui/auxiliary/window_builder.cpp (revision 54624) -+++ src/gui/auxiliary/window_builder.cpp (revision 54625) -@@ -18,7 +18,6 @@ - #include "gui/auxiliary/window_builder_private.hpp" - - #include "asserts.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/window_builder/helper.hpp" -@@ -43,6 +42,7 @@ - #include "formula_string_utils.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - namespace gui2 { - -@@ -67,7 +67,7 @@ - std::string - , boost::function<tbuilder_widget_ptr(config)> > - thack; -- foreach(const thack& item, builder_widget_lookup()) { -+ BOOST_FOREACH(const thack& item, builder_widget_lookup()) { - if(item.first == "window" || item.first == "tooltip") { - continue; - } -@@ -153,7 +153,7 @@ - , definition->helptip); - assert(window); - -- foreach(const twindow_builder::tresolution::tlinked_group& lg, -+ BOOST_FOREACH(const twindow_builder::tresolution::tlinked_group& lg, - definition->linked_groups) { - - if(window->has_linked_size_group(lg.id)) { -@@ -238,7 +238,7 @@ - - config::const_child_itors cfgs = cfg.child_range("resolution"); - VALIDATE(cfgs.first != cfgs.second, _("No resolution defined.")); -- foreach (const config &i, cfgs) { -+ BOOST_FOREACH(const config &i, cfgs) { - resolutions.push_back(tresolution(i)); - } - -@@ -386,7 +386,7 @@ - definition = "default"; - } - -- foreach (const config &lg, cfg.child_range("linked_group")) { -+ BOOST_FOREACH(const config &lg, cfg.child_range("linked_group")) { - tlinked_group linked_group; - linked_group.id = lg["id"].str(); - linked_group.fixed_width = lg["fixed_width"].to_bool(); -@@ -501,13 +501,13 @@ - */ - log_scope2(log_gui_parse, "Window builder: parsing a grid"); - -- foreach (const config &row, cfg.child_range("row")) -+ BOOST_FOREACH(const config &row, cfg.child_range("row")) - { - unsigned col = 0; - - row_grow_factor.push_back(row["grow_factor"]); - -- foreach (const config &c, row.child_range("column")) -+ BOOST_FOREACH(const config &c, row.child_range("column")) - { - flags.push_back(implementation::read_flags(c)); - border_size.push_back(c["border_size"]); -Index: src/gui/auxiliary/tips.cpp -=================================================================== ---- src/gui/auxiliary/tips.cpp (revision 54624) -+++ src/gui/auxiliary/tips.cpp (revision 54625) -@@ -18,10 +18,11 @@ - #include "gui/auxiliary/tips.hpp" - - #include "config.hpp" --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "serialization/string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - ttip::ttip(const t_string& text -@@ -39,7 +40,7 @@ - { - std::vector<ttip> result; - -- foreach(const config &tip, cfg.child_range("tip")) { -+ BOOST_FOREACH(const config &tip, cfg.child_range("tip")) { - result.push_back(ttip(tip["text"] - , tip["source"] - , tip["encountered_units"])); -@@ -54,11 +55,11 @@ - - const std::set<std::string>& units = preferences::encountered_units(); - -- foreach(const ttip& tip, tips) { -+ BOOST_FOREACH(const ttip& tip, tips) { - if(tip.unit_filter_.empty()) { - result.push_back(tip); - } else { -- foreach(const std::string& unit, tip.unit_filter_) { -+ BOOST_FOREACH(const std::string& unit, tip.unit_filter_) { - if(units.find(unit) != units.end()) { - result.push_back(tip); - break; -Index: src/gui/auxiliary/notifier.hpp -=================================================================== ---- src/gui/auxiliary/notifier.hpp (revision 54624) -+++ src/gui/auxiliary/notifier.hpp (revision 54625) -@@ -16,10 +16,10 @@ - #ifndef GUI_WIDGETS_AUXILIARY_NOTIFIER_HPP_INCLUDED - #define GUI_WIDGETS_AUXILIARY_NOTIFIER_HPP_INCLUDED - --#include "foreach.hpp" -- - #include "gui/auxiliary/notifiee.hpp" - -+#include <boost/foreach.hpp> -+ - #include <cassert> - #include <map> - -@@ -47,7 +47,7 @@ - ~tnotifier() - { - typedef std::pair<tnotifiee<tfunctor>* const, tfunctor> thack; -- foreach(thack& item, notifiees_) { -+ BOOST_FOREACH(thack& item, notifiees_) { - assert(item.first); - assert((*item.first).notifier_ == this); - -Index: src/gui/auxiliary/window_builder/helper.cpp -=================================================================== ---- src/gui/auxiliary/window_builder/helper.cpp (revision 54624) -+++ src/gui/auxiliary/window_builder/helper.cpp (revision 54625) -@@ -18,11 +18,12 @@ - #include "gui/auxiliary/window_builder/helper.hpp" - - #include "config.hpp" --#include "foreach.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/widgets/grid.hpp" - #include "gui/widgets/window.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - namespace implementation { -@@ -60,7 +61,7 @@ - unsigned get_border(const std::vector<std::string>& border) - { - unsigned result = 0; -- foreach (const std::string& s, border) { -+ BOOST_FOREACH(const std::string& s, border) { - if (s == "all") { - return tgrid::BORDER_ALL; - } else if (s == "top") { -Index: src/gui/auxiliary/window_builder/stacked_widget.cpp -=================================================================== ---- src/gui/auxiliary/window_builder/stacked_widget.cpp (revision 54624) -+++ src/gui/auxiliary/window_builder/stacked_widget.cpp (revision 54625) -@@ -18,13 +18,14 @@ - #include "gui/auxiliary/window_builder/stacked_widget.hpp" - - #include "config.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/widget_definition/stacked_widget.hpp" - #include "gui/widgets/stacked_widget.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - namespace implementation { -@@ -35,7 +36,7 @@ - { - const config &s = cfg.child("stack"); - VALIDATE(s, _("No stack defined.")); -- foreach(const config &layer, s.child_range("layer")) { -+ BOOST_FOREACH(const config &layer, s.child_range("layer")) { - stack.push_back(new tbuilder_grid(layer)); - } - } -Index: src/gui/auxiliary/window_builder/slider.cpp -=================================================================== ---- src/gui/auxiliary/window_builder/slider.cpp (revision 54624) -+++ src/gui/auxiliary/window_builder/slider.cpp (revision 54625) -@@ -18,12 +18,13 @@ - #include "gui/auxiliary/window_builder/slider.hpp" - - #include "config.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/widgets/slider.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - namespace implementation { -@@ -44,7 +45,7 @@ - return; - } - -- foreach(const config& label, labels.child_range("value")) { -+ BOOST_FOREACH(const config& label, labels.child_range("value")) { - value_labels_.push_back(label["label"]); - } - } -Index: src/gui/auxiliary/window_builder/horizontal_listbox.cpp -=================================================================== ---- src/gui/auxiliary/window_builder/horizontal_listbox.cpp (revision 54624) -+++ src/gui/auxiliary/window_builder/horizontal_listbox.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/auxiliary/window_builder/horizontal_listbox.hpp" - --#include "foreach.hpp" - #include "gettext.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/widget_definition/listbox.hpp" -@@ -29,6 +28,8 @@ - #endif - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - namespace implementation { -@@ -53,12 +54,12 @@ - const config &data = cfg.child("list_data"); - if (!data) return; - -- foreach(const config &row, data.child_range("row")) { -+ BOOST_FOREACH(const config &row, data.child_range("row")) { - unsigned col = 0; - -- foreach(const config &c, row.child_range("column")) { -+ BOOST_FOREACH(const config &c, row.child_range("column")) { - list_data.push_back(string_map()); -- foreach (const config::attribute &i, c.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, c.attribute_range()) { - list_data.back()[i.first] = i.second; - } - ++col; -Index: src/gui/auxiliary/window_builder/listbox.cpp -=================================================================== ---- src/gui/auxiliary/window_builder/listbox.cpp (revision 54624) -+++ src/gui/auxiliary/window_builder/listbox.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/auxiliary/window_builder/listbox.hpp" - --#include "foreach.hpp" - #include "gettext.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/widget_definition/listbox.hpp" -@@ -30,6 +29,8 @@ - #include "gui/widgets/settings.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - namespace implementation { -@@ -66,12 +67,12 @@ - return; - } - -- foreach(const config& row, data.child_range("row")) { -+ BOOST_FOREACH(const config& row, data.child_range("row")) { - unsigned col = 0; - -- foreach(const config& c, row.child_range("column")) { -+ BOOST_FOREACH(const config& c, row.child_range("column")) { - list_data.push_back(string_map()); -- foreach(const config::attribute& i, c.attribute_range()) { -+ BOOST_FOREACH(const config::attribute& i, c.attribute_range()) { - list_data.back()[i.first] = i.second; - } - ++col; -Index: src/gui/auxiliary/window_builder/multi_page.cpp -=================================================================== ---- src/gui/auxiliary/window_builder/multi_page.cpp (revision 54624) -+++ src/gui/auxiliary/window_builder/multi_page.cpp (revision 54625) -@@ -18,13 +18,14 @@ - #include "gui/auxiliary/window_builder/multi_page.hpp" - - #include "config.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/widget_definition/multi_page.hpp" - #include "gui/widgets/multi_page.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - namespace implementation { -@@ -46,12 +47,12 @@ - return; - } - -- foreach(const config &row, d.child_range("row")) { -+ BOOST_FOREACH(const config &row, d.child_range("row")) { - unsigned col = 0; - -- foreach(const config &column, row.child_range("column")) { -+ BOOST_FOREACH(const config &column, row.child_range("column")) { - data.push_back(string_map()); -- foreach(const config::attribute &i, column.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, column.attribute_range()) { - data.back()[i.first] = i.second; - } - ++col; -Index: src/gui/auxiliary/window_builder/tree_view.cpp -=================================================================== ---- src/gui/auxiliary/window_builder/tree_view.cpp (revision 54624) -+++ src/gui/auxiliary/window_builder/tree_view.cpp (revision 54625) -@@ -17,7 +17,6 @@ - - #include "gui/auxiliary/window_builder/tree_view.hpp" - --#include "foreach.hpp" - #include "gettext.hpp" - #include "gui/auxiliary/log.hpp" - #include "gui/auxiliary/widget_definition/tree_view.hpp" -@@ -25,6 +24,8 @@ - #include "gui/widgets/tree_view.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - namespace gui2 { - - namespace implementation { -@@ -39,7 +40,7 @@ - , nodes() - { - -- foreach(const config &node, cfg.child_range("node")) { -+ BOOST_FOREACH(const config &node, cfg.child_range("node")) { - nodes.push_back(tnode(node)); - } - -Index: src/unit_types.cpp -=================================================================== ---- src/unit_types.cpp (revision 54624) -+++ src/unit_types.cpp (revision 54625) -@@ -22,13 +22,13 @@ - - #include "unit_types.hpp" - --#include "foreach.hpp" - #include "game_config.hpp" - #include "gettext.hpp" - #include "loadscreen.hpp" - #include "log.hpp" - #include "map.hpp" - -+#include <boost/foreach.hpp> - - static lg::log_domain log_config("config"); - #define ERR_CF LOG_STREAM(err, log_config) -@@ -156,7 +156,7 @@ - if (config &specials = cfg_.child("specials")) - { - config new_specials; -- foreach (const config::any_child &vp, specials.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &vp, specials.all_children_range()) { - std::vector<std::string>::const_iterator found_id = - std::find(dsl.begin(), dsl.end(), vp.cfg["id"]); - if (found_id == dsl.end()) { -@@ -174,7 +174,7 @@ - cfg_.clear_children("specials"); - } - config &new_specials = cfg_.child_or_add("specials"); -- foreach (const config::any_child &value, set_specials.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &value, set_specials.all_children_range()) { - new_specials.add_child(value.key, value.cfg); - } - } -@@ -345,7 +345,7 @@ - - if (const config &resistance = cfg_.child("resistance")) - { -- foreach (const config::attribute &i, resistance.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, resistance.attribute_range()) { - res[i.first] = i.second; - } - } -@@ -666,11 +666,11 @@ - movementType_ = unit_movement_type(cfg); - alpha_ = ftofxp(1.0); - -- foreach (const config &t, traits) -+ BOOST_FOREACH(const config &t, traits) - { - possibleTraits_.add_child("trait", t); - } -- foreach (config &var_cfg, cfg.child_range("variation")) -+ BOOST_FOREACH(config &var_cfg, cfg.child_range("variation")) - { - if (var_cfg["inherit"].to_bool()) { - config nvar_cfg(cfg); -@@ -710,7 +710,7 @@ - if (cfg["ignore_race_traits"].to_bool()) { - possibleTraits_.clear(); - } else { -- foreach (const config &t, race_->additional_traits()) -+ BOOST_FOREACH(const config &t, race_->additional_traits()) - { - if (alignment_ != NEUTRAL || t["id"] != "fearless") - possibleTraits_.add_child("trait", t); -@@ -722,7 +722,7 @@ - } - - // Insert any traits that are just for this unit type -- foreach (const config &trait, cfg.child_range("trait")) -+ BOOST_FOREACH(const config &trait, cfg.child_range("trait")) - { - possibleTraits_.add_child("trait", trait); - } -@@ -750,7 +750,7 @@ - game_config::add_color_info(cfg); - - -- foreach (const config &portrait, cfg_.child_range("portrait")) { -+ BOOST_FOREACH(const config &portrait, cfg_.child_range("portrait")) { - portraits_.push_back(tportrait(portrait)); - } - -@@ -807,7 +807,7 @@ - - if (const config &abil_cfg = cfg.child("abilities")) - { -- foreach (const config::any_child &ab, abil_cfg.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &ab, abil_cfg.all_children_range()) { - const config::attribute_value &name = ab.cfg["name"]; - if (!name.empty()) { - abilities_.push_back(name.t_str()); -@@ -816,15 +816,15 @@ - } - } - -- foreach (const config &adv, cfg.child_range("advancement")) -+ BOOST_FOREACH(const config &adv, cfg.child_range("advancement")) - { -- foreach (const config &effect, adv.child_range("effect")) -+ BOOST_FOREACH(const config &effect, adv.child_range("effect")) - { - const config &abil_cfg = effect.child("abilities"); - if (!abil_cfg || effect["apply_to"] != "new_ability") { - continue; - } -- foreach (const config::any_child &ab, abil_cfg.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &ab, abil_cfg.all_children_range()) { - const config::attribute_value &name = ab.cfg["name"]; - if (!name.empty()) { - adv_abilities_.push_back(name.t_str()); -@@ -934,7 +934,7 @@ - std::vector<attack_type> unit_type::attacks() const - { - std::vector<attack_type> res; -- foreach (const config &att, cfg_.child_range("attack")) { -+ BOOST_FOREACH(const config &att, cfg_.child_range("attack")) { - res.push_back(attack_type(att)); - } - -@@ -990,7 +990,7 @@ - { - if (const config &abil = cfg_.child("abilities")) - { -- foreach (const config::any_child &ab, abil.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &ab, abil.all_children_range()) { - if (ab.cfg["id"] == ability) - return true; - } -@@ -1005,7 +1005,7 @@ - const config &abilities = cfg_.child("abilities"); - if (!abilities) return res; - -- foreach (const config::any_child &ab, abilities.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &ab, abilities.all_children_range()) { - const std::string &id = ab.cfg["id"]; - if (!id.empty()) - res.push_back(id); -@@ -1077,7 +1077,7 @@ - if (!ut) - return; - -- foreach(const std::string& adv, ut->advances_to()) { -+ BOOST_FOREACH(const std::string& adv, ut->advances_to()) { - if (tree.insert(adv).second) { - // insertion succeed, expand the new type - advancement_tree_internal(adv, tree); -@@ -1098,9 +1098,9 @@ - unit_types.build_all(unit_type::HELP_INDEX); - - std::vector<std::string> adv_from; -- foreach (const unit_type_data::unit_type_map::value_type &ut, unit_types.types()) -+ BOOST_FOREACH(const unit_type_data::unit_type_map::value_type &ut, unit_types.types()) - { -- foreach(const std::string& adv, ut.second.advances_to()) { -+ BOOST_FOREACH(const std::string& adv, ut.second.advances_to()) { - if (adv == id_) - adv_from.push_back(ut.second.id()); - } -@@ -1127,7 +1127,7 @@ - clear(); - set_unit_config(cfg); - -- foreach (const config &mt, cfg.child_range("movetype")) -+ BOOST_FOREACH(const config &mt, cfg.child_range("movetype")) - { - const unit_movement_type move_type(mt); - movement_types_.insert( -@@ -1135,14 +1135,14 @@ - loadscreen::increment_progress(); - } - -- foreach (const config &r, cfg.child_range("race")) -+ BOOST_FOREACH(const config &r, cfg.child_range("race")) - { - const unit_race race(r); - races_.insert(std::pair<std::string,unit_race>(race.id(),race)); - loadscreen::increment_progress(); - } - -- foreach (config &ut, cfg.child_range("unit_type")) -+ BOOST_FOREACH(config &ut, cfg.child_range("unit_type")) - { - std::string id = ut["id"]; - if (const config &bu = ut.child("base_unit")) -@@ -1195,7 +1195,7 @@ - - void unit_type_data::check_types(const std::vector<std::string>& types) const - { -- foreach(const std::string& type, types) { -+ BOOST_FOREACH(const std::string& type, types) { - if(!find(type)) throw game::game_error("unknown unit type: " + type); - } - } -@@ -1279,7 +1279,7 @@ - - std::vector<std::string> trees = utils::split(cfg["type_adv_tree"]); - hide_help_type_.back().insert(trees.begin(), trees.end()); -- foreach(const std::string& t_id, trees) { -+ BOOST_FOREACH(const std::string& t_id, trees) { - unit_type_map::iterator ut = types_.find(t_id); - if (ut != types_.end()) { - std::set<std::string> adv_tree = ut->second.advancement_tree(); -@@ -1310,7 +1310,7 @@ - { - const config& cfg = to_unit.get_cfg(); - -- foreach (const config &af, cfg.child_range("advancefrom")) -+ BOOST_FOREACH(const config &af, cfg.child_range("advancefrom")) - { - const std::string &from = af["unit"]; - int xp = af["experience"]; -@@ -1349,12 +1349,12 @@ - // status gets changed. In the unlikely event it gets changed - // multiple times, we want to try to do it in the same order - // that unit::apply_modifications does things. -- foreach (const config &mod, possible_traits()) -+ BOOST_FOREACH(const config &mod, possible_traits()) - { - if (mod["availability"] != "musthave") - continue; - -- foreach (const config &effect, mod.child_range("effect")) -+ BOOST_FOREACH(const config &effect, mod.child_range("effect")) - { - // See if the effect only applies to - // certain unit types But don't worry -Index: src/game_controller.cpp -=================================================================== ---- src/game_controller.cpp (revision 54624) -+++ src/game_controller.cpp (revision 54625) -@@ -50,6 +50,8 @@ - #include "statistics.hpp" - #include "wml_exception.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_config("config"); - #define ERR_CONFIG LOG_STREAM(err, log_config) - #define WRN_CONFIG LOG_STREAM(warn, log_config) -@@ -478,7 +480,7 @@ - } - - int side_num = 1; -- foreach (config &s, level.child_range("side")) -+ BOOST_FOREACH(config &s, level.child_range("side")) - { - std::map<int,std::string>::const_iterator type = side_types.find(side_num), - controller = side_controllers.find(side_num), -@@ -507,7 +509,7 @@ - faction_excepts.clear(); - } - unsigned j = 0; -- foreach (const config &faction, era_cfg.child_range("multiplayer_side")) -+ BOOST_FOREACH(const config &faction, era_cfg.child_range("multiplayer_side")) - { - if (faction["random_faction"].to_bool()) continue; - const std::string &faction_id = faction["id"]; -@@ -673,7 +675,7 @@ - } - - if(state_.classification().campaign_type == "multiplayer") { -- foreach (config &side, state_.snapshot.child_range("side")) -+ BOOST_FOREACH(config &side, state_.snapshot.child_range("side")) - { - if (side["controller"] == "network") - side["controller"] = "human"; -@@ -683,10 +685,10 @@ - } - - if (load.cancel_orders()) { -- foreach (config &side, state_.snapshot.child_range("side")) -+ BOOST_FOREACH(config &side, state_.snapshot.child_range("side")) - { - if (side["controller"] != "human") continue; -- foreach (config &unit, side.child_range("unit")) -+ BOOST_FOREACH(config &unit, side.child_range("unit")) - { - unit["goto_x"] = -999; - unit["goto_y"] = -999; -@@ -710,7 +712,7 @@ - - void game_controller::mark_completed_campaigns(std::vector<config> &campaigns) - { -- foreach (config &campaign, campaigns) { -+ BOOST_FOREACH(config &campaign, campaigns) { - campaign["completed"] = preferences::is_campaign_completed(campaign["id"]); - } - } -@@ -1218,7 +1220,7 @@ - game_config_.splice_children(core_terrain_rules, "terrain_graphics"); - - config& hashes = game_config_.add_child("multiplayer_hashes"); -- foreach (const config &ch, game_config_.child_range("multiplayer")) { -+ BOOST_FOREACH(const config &ch, game_config_.child_range("multiplayer")) { - hashes[ch["id"]] = ch.hash(); - } - -Index: src/unit.cpp -=================================================================== ---- src/unit.cpp (revision 54624) -+++ src/unit.cpp (revision 54625) -@@ -21,7 +21,6 @@ - #include "unit.hpp" - - #include "callable_objects.hpp" --#include "foreach.hpp" - #include "formula.hpp" - #include "game_display.hpp" - #include "game_preferences.hpp" -@@ -38,6 +37,7 @@ - #include "side_filter.hpp" - #include "play_controller.hpp" - -+#include <boost/foreach.hpp> - static lg::log_domain log_unit("unit"); - #define DBG_UT LOG_STREAM(debug, log_unit) - #define LOG_UT LOG_STREAM(info, log_unit) -@@ -288,7 +288,7 @@ - filter_recall_ = filter_recall.get_config(); - - const vconfig::child_list& events = vcfg->get_children("event"); -- foreach(const vconfig& e, events) { -+ BOOST_FOREACH(const vconfig& e, events) { - events_.add_child("event", e.get_config()); - } - } -@@ -296,7 +296,7 @@ - { - filter_recall_ = cfg.child_or_empty("filter_recall"); - -- foreach(const config& unit_event, cfg.child_range("event")) { -+ BOOST_FOREACH(const config& unit_event, cfg.child_range("event")) { - events_.add_child("event", unit_event); - } - } -@@ -375,7 +375,7 @@ - formula_vars_ = new game_logic::map_formula_callable; - - variant var; -- foreach (const config::attribute &i, ai_vars.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, ai_vars.attribute_range()) { - var.serialize_from_string(i.second); - formula_vars_->add(i.first, var); - } -@@ -432,7 +432,7 @@ - - if (const config &status_flags = cfg.child("status")) - { -- foreach (const config::attribute &st, status_flags.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &st, status_flags.attribute_range()) { - if (st.first == "healable") { - ///@deprecated 1.9.2 'healable' instead of 'unhealable' - ERR_UT << "Usage of 'healable' is deprecated, use 'unhealable' instead, " -@@ -449,7 +449,7 @@ - } - - // Remove animations from private cfg, they're not needed there now -- foreach(const std::string& tag_name, unit_animation::all_tag_names()) { -+ BOOST_FOREACH(const std::string& tag_name, unit_animation::all_tag_names()) { - cfg_.clear_children(tag_name); - } - -@@ -518,7 +518,7 @@ - "canrecruit", "extra_recruit", "x", "y", "placement", - // Useless attributes created when saving units to WML: - "flag_rgb", "language_name" }; -- foreach (const char *attr, internalized_attrs) { -+ BOOST_FOREACH(const char *attr, internalized_attrs) { - input_cfg.remove_attribute(attr); - cfg_.remove_attribute(attr); - } -@@ -526,11 +526,11 @@ - static char const *raw_attrs[] = { "description", "halo", - "profile", "small_profile", "upkeep", "usage", "ellipse", - "image", "image_icon", "random_traits", "generate_name" }; -- foreach (const char *attr, raw_attrs) { -+ BOOST_FOREACH(const char *attr, raw_attrs) { - input_cfg.remove_attribute(attr); - } - -- foreach (const config::attribute &attr, input_cfg.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &attr, input_cfg.attribute_range()) { - if (attr.first == "do_not_list") continue; - WRN_UT << "Unknown attribute '" << attr.first << "' discarded.\n"; - } -@@ -715,12 +715,12 @@ - config::const_child_itors current_traits = modifications_.child_range("trait"); - std::vector<config> candidate_traits; - -- foreach (const config &t, type->possible_traits()) -+ BOOST_FOREACH(const config &t, type->possible_traits()) - { - // Skip the trait if the unit already has it. - const std::string &tid = t["id"]; - bool already = false; -- foreach (const config &mod, current_traits) -+ BOOST_FOREACH(const config &mod, current_traits) - { - if (mod["id"] == tid) { - already = true; -@@ -767,7 +767,7 @@ - { - std::vector<std::string> res; - -- foreach (const config &mod, modifications_.child_range("trait")) -+ BOOST_FOREACH(const config &mod, modifications_.child_range("trait")) - { - std::string const &id = mod["id"]; - if (!id.empty()) -@@ -797,7 +797,7 @@ - config new_cfg; - static char const *persistent_attrs[] = { "upkeep", "ellipse", - "image", "image_icon", "usage", "random_traits", "generate_name" }; -- foreach (const char *attr, persistent_attrs) { -+ BOOST_FOREACH(const char *attr, persistent_attrs) { - if (const config::attribute_value *v = old_cfg.get(attr)) { - new_cfg[attr] = *v; - } -@@ -813,7 +813,7 @@ - static char const *unit_type_attrs[] = { "movement", "movement_type", - "die_sound", "flies", "inherit", "variation_name", - "ignore_race_traits", "hide_help" }; -- foreach (const char *attr, unit_type_attrs) { -+ BOOST_FOREACH(const char *attr, unit_type_attrs) { - new_cfg.remove_attribute(attr); - } - -@@ -1020,7 +1020,7 @@ - const std::vector<std::string> unit::advances_to_translated() const - { - std::vector<std::string> result; -- foreach (std::string type_id, advances_to_) -+ BOOST_FOREACH(std::string type_id, advances_to_) - { - const unit_type *type = unit_types.find(type_id); - if (type) -@@ -1120,7 +1120,7 @@ - const std::map<std::string,std::string> unit::get_states() const - { - std::map<std::string, std::string> all_states; -- foreach (std::string const &s, states_) { -+ BOOST_FOREACH(std::string const &s, states_) { - all_states[s] = "yes"; - } - for (std::map<std::string, state_t>::const_iterator i = known_boolean_state_names_.begin(), -@@ -1195,7 +1195,7 @@ - { - if (const config &abil = cfg_.child("abilities")) - { -- foreach (const config::any_child &ab, abil.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &ab, abil.all_children_range()) { - if (ab.cfg["id"] == ability) - return true; - } -@@ -2197,7 +2197,7 @@ - if (const config &resistance = cfg_.child("resistance")) - { - utils::string_map res; -- foreach (const config::attribute &i, resistance.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, resistance.attribute_range()) { - res[i.first] = i.second; - } - return res; -@@ -2222,7 +2222,7 @@ - { - std::ostringstream tooltip; - const std::string &image = game_config::images::level; -- foreach (const std::string &s, advances_to()) -+ BOOST_FOREACH(const std::string &s, advances_to()) - { - if (!s.empty()) - tooltip << s << '\n'; -@@ -2230,7 +2230,7 @@ - temp[image] = tooltip.str(); - } - -- foreach (const config &adv, get_modification_advances()) -+ BOOST_FOREACH(const config &adv, get_modification_advances()) - { - const std::string &image = adv["image"]; - if (image.empty()) continue; -@@ -2248,7 +2248,7 @@ - std::vector<std::pair<std::string,std::string> > temp; - std::pair<std::string,std::string> icon; //<image,tooltip> - -- foreach (const config &adv, get_modification_advances()) -+ BOOST_FOREACH(const config &adv, get_modification_advances()) - { - icon.first = adv["icon"].str(); - icon.second = adv["description"].str(); -@@ -2265,7 +2265,7 @@ - std::vector<config> unit::get_modification_advances() const - { - std::vector<config> res; -- foreach (const config &adv, modification_advancements()) -+ BOOST_FOREACH(const config &adv, modification_advancements()) - { - if (adv["strict_amla"].to_bool() && !advances_to_.empty()) - continue; -@@ -2283,7 +2283,7 @@ - std::unique_copy(temp.begin(), temp.end(), std::back_inserter(uniq)); - - bool requirements_done = true; -- foreach (const std::string &s, uniq) -+ BOOST_FOREACH(const std::string &s, uniq) - { - int required_num = std::count(temp.begin(), temp.end(), s); - int mod_num = modification_count("advance", s); -@@ -2302,7 +2302,7 @@ - size_t unit::modification_count(const std::string& type, const std::string& id) const - { - size_t res = 0; -- foreach (const config &item, modifications_.child_range(type)) { -+ BOOST_FOREACH(const config &item, modifications_.child_range(type)) { - if (item["id"] == id) { - ++res; - } -@@ -2314,7 +2314,7 @@ - /** Helper function for add_modifications */ - static void mod_mdr_merge(config& dst, const config& mod, bool delta) - { -- foreach (const config::attribute &i, mod.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, mod.attribute_range()) { - int v = 0; - if (delta) v = dst[i.first]; - dst[i.first] = v + i.second.to_int(); -@@ -2336,7 +2336,7 @@ - } - config last_effect; - std::vector<t_string> effects_description; -- foreach (const config &effect, mod.child_range("effect")) -+ BOOST_FOREACH(const config &effect, mod.child_range("effect")) - { - // See if the effect only applies to certain unit types - const std::string &type_filter = effect["unit_type"]; -@@ -2524,7 +2524,7 @@ - config &def = cfg_.child_or_add("defense"); - if (const config &ap = effect.child("defense")) { - bool replace = effect["replace"].to_bool(); -- foreach (const config::attribute &i, ap.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, ap.attribute_range()) { - int v = i.second.to_int(); - config::attribute_value &dst = def[i.first]; - if (!replace) { -@@ -2551,7 +2551,7 @@ - config &ab = cfg_.child_or_add("abilities"); - if (const config &ab_effect = effect.child("abilities")) { - config to_append; -- foreach (const config::any_child &ab, ab_effect.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &ab, ab_effect.all_children_range()) { - if(!has_ability_by_id(ab.cfg["id"])) { - to_append.add_child(ab.key, ab.cfg); - } -@@ -2560,7 +2560,7 @@ - } - } else if (apply_to == "remove_ability") { - if (const config &ab_effect = effect.child("abilities")) { -- foreach (const config::any_child &ab, ab_effect.all_children_range()) { -+ BOOST_FOREACH(const config::any_child &ab, ab_effect.all_children_range()) { - remove_ability_by_id(ab.cfg["id"]); - } - } -@@ -2749,7 +2749,7 @@ - - for(size_t i = 0; i != NumModificationTypes; ++i) { - const std::string& mod = ModificationTypes[i]; -- foreach (const config &m, modifications_.child_range(mod)) { -+ BOOST_FOREACH(const config &m, modifications_.child_range(mod)) { - log_scope("add mod"); - add_modification(ModificationTypes[i], m, true); - } -@@ -2779,7 +2779,7 @@ - bool is_inv = !get_state(STATE_UNCOVERED) && get_ability_bool(hides,loc); - if(is_inv){ - const std::vector<team>& teams = *resources::teams; -- foreach (const unit &u, *resources::units) -+ BOOST_FOREACH(const unit &u, *resources::units) - { - const map_location &u_loc = u.get_location(); - if (teams[side_-1].is_enemy(u.side()) && tiles_adjacent(loc, u_loc)) { -@@ -2881,7 +2881,7 @@ - int side_units(int side) - { - int res = 0; -- foreach (const unit &u, *resources::units) { -+ BOOST_FOREACH(const unit &u, *resources::units) { - if (u.side() == side) ++res; - } - return res; -@@ -2890,7 +2890,7 @@ - int side_units_cost(int side) - { - int res = 0; -- foreach (const unit &u, *resources::units) { -+ BOOST_FOREACH(const unit &u, *resources::units) { - if (u.side() == side) res += u.cost(); - } - return res; -@@ -2899,7 +2899,7 @@ - int side_upkeep(int side) - { - int res = 0; -- foreach (const unit &u, *resources::units) { -+ BOOST_FOREACH(const unit &u, *resources::units) { - if (u.side() == side) res += u.upkeep(); - } - return res; -@@ -3029,7 +3029,7 @@ - const tportrait* unit::portrait( - const unsigned size, const tportrait::tside side) const - { -- foreach(const tportrait& portrait, (type()->portraits())) { -+ BOOST_FOREACH(const tportrait& portrait, (type()->portraits())) { - if(portrait.size == size - && (side == portrait.side || portrait.side == tportrait::BOTH)) { - -@@ -3107,20 +3107,20 @@ - "number", - ""}; - -- foreach (const config &att, unit_config.child_range("attack")) -+ BOOST_FOREACH(const config &att, unit_config.child_range("attack")) - { - config& child = wcfg.add_child("attack"); - for (int i = 0; !attack_keys[i].empty(); ++i) { - child[attack_keys[i]] = att[attack_keys[i]]; - } -- foreach (const config &spec, att.child_range("specials")) { -+ BOOST_FOREACH(const config &spec, att.child_range("specials")) { - config& child_spec = child.add_child("specials", spec); - child_spec.recursive_clear_value("description"); - } - - } - -- foreach (const config &abi, unit_config.child_range("abilities")) -+ BOOST_FOREACH(const config &abi, unit_config.child_range("abilities")) - { - config& child = wcfg.add_child("abilities", abi); - child.recursive_clear_value("description"); -@@ -3129,7 +3129,7 @@ - child.recursive_clear_value("name_inactive"); - } - -- foreach (const config &trait, unit_config.child_range("trait")) -+ BOOST_FOREACH(const config &trait, unit_config.child_range("trait")) - { - config& child = wcfg.add_child("trait", trait); - child.recursive_clear_value("description"); -@@ -3142,7 +3142,7 @@ - - for (int i = 0; !child_keys[i].empty(); ++i) - { -- foreach (const config &c, unit_config.child_range(child_keys[i])) { -+ BOOST_FOREACH(const config &c, unit_config.child_range(child_keys[i])) { - wcfg.add_child(child_keys[i], c); - } - } -Index: src/campaign_server/campaign_server.cpp -=================================================================== ---- src/campaign_server/campaign_server.cpp (revision 54624) -+++ src/campaign_server/campaign_server.cpp (revision 54625) -@@ -21,7 +21,6 @@ - */ - - #include "filesystem.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "network_worker.hpp" - #include "serialization/binary_or_text.hpp" -@@ -35,6 +34,7 @@ - - #include <csignal> - -+#include <boost/foreach.hpp> - #include <boost/iostreams/filter/gzip.hpp> - - // the fork execute is unix specific only tested on Linux quite sure it won't -@@ -202,7 +202,7 @@ - - void find_translations(const config& cfg, config& campaign) - { -- foreach (const config &dir, cfg.child_range("dir")) -+ BOOST_FOREACH(const config &dir, cfg.child_range("dir")) - { - if (dir["name"] == "LC_MESSAGES") { - config &language = campaign.add_child("translation"); -@@ -249,7 +249,7 @@ - LOG_CS << "Encoding all stored addons. Number of addons: " - << std::distance(camps.first, camps.second) << '\n'; - -- foreach (const config &cm, camps) -+ BOOST_FOREACH(const config &cm, camps) - { - LOG_CS << "Encoding " << cm["name"] << '\n'; - std::string filename = cm["filename"], newfilename = filename + ".new"; -@@ -345,7 +345,7 @@ - } catch(bad_lexical_cast) {} - - std::string name = req["name"], lang = req["language"]; -- foreach (const config &i, campaigns().child_range("campaign")) -+ BOOST_FOREACH(const config &i, campaigns().child_range("campaign")) - { - if (!name.empty() && name != i["name"]) continue; - std::string tm = i["timestamp"]; -@@ -353,7 +353,7 @@ - if (after_flag && (tm.empty() || lexical_cast_default<time_t>(tm, 0) <= after)) continue; - if (!lang.empty()) { - bool found = false; -- foreach (const config &j, i.child_range("translation")) { -+ BOOST_FOREACH(const config &j, i.child_range("translation")) { - if (j["language"] == lang) { - found = true; - break; -@@ -364,7 +364,7 @@ - campaign_list.add_child("campaign", i); - } - -- foreach (config &j, campaign_list.child_range("campaign")) { -+ BOOST_FOREACH(config &j, campaign_list.child_range("campaign")) { - j["passphrase"] = t_string(); - j["upload_ip"] = t_string(); - j["email"] = t_string(); -@@ -402,7 +402,7 @@ - std::string lc_name(name.size(), ' '); - std::transform(name.begin(), name.end(), lc_name.begin(), tolower); - config *campaign = NULL; -- foreach (config &c, campaigns().child_range("campaign")) { -+ BOOST_FOREACH(config &c, campaigns().child_range("campaign")) { - if (utils::lowercase(c["name"]) == lc_name) { - campaign = &c; - break; -Index: src/image_modifications.cpp -=================================================================== ---- src/image_modifications.cpp (revision 54624) -+++ src/image_modifications.cpp (revision 54625) -@@ -15,13 +15,14 @@ - - #include "color_range.hpp" - #include "config.hpp" --#include "foreach.hpp" - #include "game_config.hpp" - #include "image.hpp" - #include "image_modifications.hpp" - #include "log.hpp" - #include "serialization/string_utils.hpp" - -+#include <boost/foreach.hpp> -+ - #include <map> - - #define GETTEXT_DOMAIN "wesnoth-lib" -@@ -99,7 +100,7 @@ - { - modification_queue mods; - -- foreach(const std::string& encoded_mod, -+ BOOST_FOREACH(const std::string& encoded_mod, - utils::parenthetical_split(encoded_mods, '~')) { - modification* mod = decode_modification(encoded_mod); - -Index: src/statistics.cpp -=================================================================== ---- src/statistics.cpp (revision 54624) -+++ src/statistics.cpp (revision 54625) -@@ -20,12 +20,13 @@ - - #include "global.hpp" - #include "statistics.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "serialization/binary_or_text.hpp" - #include "unit.hpp" - #include "util.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_engine("engine"); - #define DBG_NG LOG_STREAM(debug, log_engine) - -@@ -57,7 +58,7 @@ - team_stats(), - scenario_name(cfg["scenario"]) - { -- foreach (const config &team, cfg.child_range("team")) { -+ BOOST_FOREACH(const config &team, cfg.child_range("team")) { - team_stats[team["save_id"]] = stats(team); - } - } -@@ -121,7 +122,7 @@ - static stats::str_int_map read_str_int_map(const config& cfg) - { - stats::str_int_map m; -- foreach (const config::attribute &i, cfg.attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, cfg.attribute_range()) { - m[i.first] = i.second; - } - -@@ -159,7 +160,7 @@ - static stats::battle_result_map read_battle_result_map(const config& cfg) - { - stats::battle_result_map m; -- foreach (const config &i, cfg.child_range("sequence")) -+ BOOST_FOREACH(const config &i, cfg.child_range("sequence")) - { - config item = i; - int key = item["_num"]; -@@ -612,7 +613,7 @@ - fresh_stats(); - mid_scenario = cfg["mid_scenario"].to_bool(); - -- foreach (const config &s, cfg.child_range("scenario")) { -+ BOOST_FOREACH(const config &s, cfg.child_range("scenario")) { - master_stats.push_back(scenario_stats(s)); - } - } -Index: src/tooltips.cpp -=================================================================== ---- src/tooltips.cpp (revision 54624) -+++ src/tooltips.cpp (revision 54625) -@@ -17,13 +17,14 @@ - #include "tooltips.hpp" - - #include "font.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "help.hpp" - #include "marked-up_text.hpp" - #include "resources.hpp" - #include "video.hpp" - -+#include <boost/foreach.hpp> -+ - namespace { - - CVideo* video_ = NULL; -@@ -172,7 +173,7 @@ - - bool click(int mousex, int mousey) - { -- foreach(tooltip tip, tips) { -+ BOOST_FOREACH(tooltip tip, tips) { - if(!tip.action.empty() && point_in_rect(mousex, mousey, tip.rect)) { - display* disp = resources::screen; - help::show_help(*disp, tip.action); -Index: src/server/ban.cpp -=================================================================== ---- src/server/ban.cpp (revision 54624) -+++ src/server/ban.cpp (revision 54625) -@@ -14,7 +14,6 @@ - */ - - #include "config.hpp" --#include "foreach.hpp" - #include "log.hpp" - #include "filesystem.hpp" - #include "serialization/parser.hpp" -@@ -24,7 +23,7 @@ - - #include "ban.hpp" - -- -+#include <boost/foreach.hpp> - #include <boost/bind.hpp> - - namespace wesnothd { -@@ -260,7 +259,7 @@ - scoped_istream ban_file = istream_file(filename_); - read_gz(cfg, *ban_file); - -- foreach (const config &b, cfg.child_range("ban")) -+ BOOST_FOREACH(const config &b, cfg.child_range("ban")) - { - try { - banned_ptr new_ban(new banned(b)); -@@ -276,7 +275,7 @@ - // load deleted too - if (const config &cfg_del = cfg.child("deleted")) - { -- foreach (const config &b, cfg_del.child_range("ban")) -+ BOOST_FOREACH(const config &b, cfg_del.child_range("ban")) - { - try { - banned_ptr new_ban(new banned(b)); -@@ -680,7 +679,7 @@ - void ban_manager::load_config(const config& cfg) - { - ban_times_.clear(); -- foreach (const config &bt, cfg.child_range("ban_time")) { -+ BOOST_FOREACH(const config &bt, cfg.child_range("ban_time")) { - time_t duration = 0; - if (parse_time(bt["time"], &duration)) { - ban_times_.insert(default_ban_times::value_type(bt["name"], duration)); -Index: src/server/server.cpp -=================================================================== ---- src/server/server.cpp (revision 54624) -+++ src/server/server.cpp (revision 54625) -@@ -23,7 +23,6 @@ - #include "../global.hpp" - - #include "../config.hpp" --#include "../foreach.hpp" - #include "../game_config.hpp" - #include "../log.hpp" - #include "../map.hpp" // gamemap::MAX_PLAYERS -@@ -54,6 +53,7 @@ - #include <boost/bind.hpp> - #include <boost/scoped_ptr.hpp> - #include <boost/scoped_array.hpp> -+#include <boost/foreach.hpp> - #include <boost/utility.hpp> - #include <algorithm> - #include <cassert> -@@ -556,15 +556,15 @@ - } - - redirected_versions_.clear(); -- foreach (const config &redirect, cfg_.child_range("redirect")) { -- foreach (const std::string &version, utils::split(redirect["version"])) { -+ BOOST_FOREACH(const config &redirect, cfg_.child_range("redirect")) { -+ BOOST_FOREACH(const std::string &version, utils::split(redirect["version"])) { - redirected_versions_[version] = redirect; - } - } - - proxy_versions_.clear(); -- foreach (const config &proxy, cfg_.child_range("proxy")) { -- foreach (const std::string &version, utils::split(proxy["version"])) { -+ BOOST_FOREACH(const config &proxy, cfg_.child_range("proxy")) { -+ BOOST_FOREACH(const std::string &version, utils::split(proxy["version"])) { - proxy_versions_[version] = proxy; - } - } -@@ -704,7 +704,7 @@ - simple_wml::document ping( strstr.str().c_str(), - simple_wml::INIT_COMPRESSED ); - simple_wml::string_span s = ping.output_compressed(); -- foreach (network::connection sock, ghost_players_) { -+ BOOST_FOREACH(network::connection sock, ghost_players_) { - if (!lg::debug.dont_log(log_server)) { - wesnothd::player_map::const_iterator i = players_.find(sock); - if (i != players_.end()) { -@@ -720,7 +720,7 @@ - // Only a single thread should be accessing this - // Erase before we copy - speeds inserts - ghost_players_.clear(); -- foreach (const wesnothd::player_map::value_type v, players_) { -+ BOOST_FOREACH(const wesnothd::player_map::value_type v, players_) { - ghost_players_.insert(v.first); - } - last_ping_ = now; -Index: src/server/room_manager.cpp -=================================================================== ---- src/server/room_manager.cpp (revision 54624) -+++ src/server/room_manager.cpp (revision 54625) -@@ -21,9 +21,10 @@ - #include "../serialization/string_utils.hpp" - #include "../util.hpp" - #include "../filesystem.hpp" --#include "../foreach.hpp" - #include "../log.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_server_lobby("server/lobby"); - #define ERR_LOBBY LOG_STREAM(err, log_server_lobby) - #define WRN_LOBBY LOG_STREAM(warn, log_server_lobby) -@@ -58,7 +59,7 @@ - // this assumes the server is shutting down, so there's no need to - // send the actual room-quit messages to clients - write_rooms(); -- foreach (t_rooms_by_name_::value_type i, rooms_by_name_) { -+ BOOST_FOREACH(t_rooms_by_name_::value_type i, rooms_by_name_) { - delete i.second; - } - } -@@ -97,7 +98,7 @@ - read(cfg, *file); - } - -- foreach (const config &c, cfg.child_range("room")) { -+ BOOST_FOREACH(const config &c, cfg.child_range("room")) { - room* r(new room(c)); - if (room_exists(r->name())) { - ERR_LOBBY << "Duplicate room ignored in stored rooms: " -@@ -122,7 +123,7 @@ - if (filename_.empty()) return; - LOG_LOBBY << "Writing rooms to " << filename_ << "\n"; - config cfg; -- foreach (const t_rooms_by_name_::value_type& v, rooms_by_name_) { -+ BOOST_FOREACH(const t_rooms_by_name_::value_type& v, rooms_by_name_) { - const room& r = *v.second; - if (r.persistent()) { - config& c = cfg.add_child("room"); -@@ -211,7 +212,7 @@ - - void room_manager::enter_lobby(const wesnothd::game &game) - { -- foreach (network::connection player, game.all_game_users()) { -+ BOOST_FOREACH(network::connection player, game.all_game_users()) { - enter_lobby(player); - } - } -@@ -225,7 +226,7 @@ - store_player_rooms(player); - t_rooms_by_player_::iterator i = rooms_by_player_.find(player); - if (i != rooms_by_player_.end()) { -- foreach (room* r, i->second) { -+ BOOST_FOREACH(room* r, i->second) { - r->remove_player(player); - } - } -@@ -244,7 +245,7 @@ - lobby_->remove_player(player); - t_rooms_by_player_::iterator i = rooms_by_player_.find(player); - if (i != rooms_by_player_.end()) { -- foreach (room* r, i->second) { -+ BOOST_FOREACH(room* r, i->second) { - r->remove_player(player); - } - } -@@ -315,7 +316,7 @@ - t_player_stored_rooms_::iterator it = - player_stored_rooms_.insert(std::make_pair(player, std::set<std::string>())).first; - std::set<std::string>& store = it->second; -- foreach (room* r, i->second) { -+ BOOST_FOREACH(room* r, i->second) { - store.insert(r->name()); - } - } -@@ -337,7 +338,7 @@ - simple_wml::document doc; - simple_wml::node& join_msg = doc.root().add_child("room_join"); - join_msg.set_attr_dup("player", user->second.name().c_str()); -- foreach (const std::string& room_name, it->second) { -+ BOOST_FOREACH(const std::string& room_name, it->second) { - room* r = get_create_room(room_name, user->first); - if (r == NULL) { - LOG_LOBBY << "Player " << user->second.name() << " unable to rejoin room " << room_name << "\n"; -@@ -528,7 +529,7 @@ - void room_manager::fill_room_list(simple_wml::node& root) - { - simple_wml::node& rooms = root.add_child("rooms"); -- foreach (const t_rooms_by_name_::value_type& tr, rooms_by_name_) { -+ BOOST_FOREACH(const t_rooms_by_name_::value_type& tr, rooms_by_name_) { - const room& r = *tr.second; - simple_wml::node& room = rooms.add_child("room"); - room.set_attr_dup("name", r.name().c_str()); -@@ -539,7 +540,7 @@ - void room_manager::fill_member_list(const room* room, simple_wml::node& root) - { - simple_wml::node& members = root.add_child("members"); -- foreach (network::connection m, room->members()) { -+ BOOST_FOREACH(network::connection m, room->members()) { - simple_wml::node& member = members.add_child("member"); - player_map::const_iterator mi = all_players_.find(m); - if (mi != all_players_.end()) { -Index: src/variable.cpp -=================================================================== ---- src/variable.cpp (revision 54624) -+++ src/variable.cpp (revision 54625) -@@ -24,7 +24,6 @@ - - #include "variable.hpp" - --#include "foreach.hpp" - #include "formula_string_utils.hpp" - #include "gamestatus.hpp" - #include "log.hpp" -@@ -34,6 +33,7 @@ - #include "team.hpp" - - #include <boost/variant.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_engine("engine"); - #define LOG_NG LOG_STREAM(info, log_engine) -@@ -233,11 +233,11 @@ - { - config res; - -- foreach (const config::attribute &i, cfg_->attribute_range()) { -+ BOOST_FOREACH(const config::attribute &i, cfg_->attribute_range()) { - res[i.first] = expand(i.first); - } - -- foreach (const config::any_child &child, cfg_->all_children_range()) -+ BOOST_FOREACH(const config::any_child &child, cfg_->all_children_range()) - { - if (child.key == "insert_tag") { - vconfig insert_cfg(child.cfg); -@@ -283,7 +283,7 @@ - { - vconfig::child_list res; - -- foreach (const config::any_child &child, cfg_->all_children_range()) -+ BOOST_FOREACH(const config::any_child &child, cfg_->all_children_range()) - { - if (child.key == key) { - res.push_back(vconfig(&child.cfg, cache_key_)); -@@ -319,7 +319,7 @@ - if (const config &natural = cfg_->child(key)) { - return vconfig(&natural, cache_key_); - } -- foreach (const config &ins, cfg_->child_range("insert_tag")) -+ BOOST_FOREACH(const config &ins, cfg_->child_range("insert_tag")) - { - vconfig insert_cfg(ins); - if(insert_cfg["name"] == key) { -@@ -339,7 +339,7 @@ - if (cfg_->child(key)) { - return true; - } -- foreach (const config &ins, cfg_->child_range("insert_tag")) -+ BOOST_FOREACH(const config &ins, cfg_->child_range("insert_tag")) - { - vconfig insert_cfg(ins); - if(insert_cfg["name"] == key) { -@@ -475,7 +475,7 @@ - - config &scoped_wml_variable::store(const config &var_value) - { -- foreach (const config &i, repos->get_variables().child_range(var_name_)) { -+ BOOST_FOREACH(const config &i, repos->get_variables().child_range(var_name_)) { - previous_val_.add_child(var_name_, i); - } - repos->clear_variable_cfg(var_name_); -@@ -489,7 +489,7 @@ - { - if(activated_) { - repos->clear_variable_cfg(var_name_); -- foreach (const config &i, previous_val_.child_range(var_name_)) { -+ BOOST_FOREACH(const config &i, previous_val_.child_range(var_name_)) { - repos->add_variable_cfg(var_name_, i); - } - LOG_NG << "scoped_wml_variable: var_name \"" << var_name_ << "\" has been reverted.\n"; -Index: src/preferences_display.cpp -=================================================================== ---- src/preferences_display.cpp (revision 54624) -+++ src/preferences_display.cpp (revision 54625) -@@ -25,7 +25,6 @@ - - #include "construct_dialog.hpp" - #include "display.hpp" --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "gettext.hpp" - #include "gui/dialogs/simple_item_selector.hpp" -@@ -35,6 +34,8 @@ - #include "marked-up_text.hpp" - #include "wml_separators.hpp" - -+#include <boost/foreach.hpp> -+ - namespace preferences { - - display* disp = NULL; -@@ -82,7 +83,7 @@ - bpp = video.modePossible(resolution.first, resolution.second, - DefaultBPP, video_flags, true); - -- foreach (const res_t &res, res_list) -+ BOOST_FOREACH(const res_t &res, res_list) - { - if (bpp != 0) break; - std::cerr << "Video mode " << resolution.first << 'x' -Index: src/hotkeys.cpp -=================================================================== ---- src/hotkeys.cpp (revision 54624) -+++ src/hotkeys.cpp (revision 54625) -@@ -19,7 +19,6 @@ - - #include "construct_dialog.hpp" - #include "display.hpp" --#include "foreach.hpp" - #include "hotkeys.hpp" - #include "game_end_exceptions.hpp" - #include "game_preferences.hpp" -@@ -33,6 +32,8 @@ - #include "wesconfig.h" - #include "wml_separators.hpp" - -+#include <boost/foreach.hpp> -+ - static lg::log_domain log_config("config"); - #define ERR_G LOG_STREAM(err, lg::general) - #define LOG_G LOG_STREAM(info, lg::general) -@@ -609,7 +610,7 @@ - - void load_hotkeys(const config& cfg) - { -- foreach (const config &hk, cfg.child_range(hotkey_tag_name)) -+ BOOST_FOREACH(const config &hk, cfg.child_range(hotkey_tag_name)) - { - hotkey_item& h = get_hotkey(hk["command"]); - if(h.get_id() != HOTKEY_NULL) { -Index: src/unit_display.cpp -=================================================================== ---- src/unit_display.cpp (revision 54624) -+++ src/unit_display.cpp (revision 54625) -@@ -18,7 +18,6 @@ - #include "global.hpp" - #include "unit_display.hpp" - --#include "foreach.hpp" - #include "game_preferences.hpp" - #include "game_events.hpp" - #include "log.hpp" -@@ -26,6 +25,7 @@ - #include "resources.hpp" - #include "terrain_filter.hpp" - -+#include <boost/foreach.hpp> - - #define LOG_DP LOG_STREAM(info, display) - -@@ -472,7 +472,7 @@ - disp->display_unit_hex(healed_loc); - unit_animator animator; - -- foreach (unit *h, healers) { -+ BOOST_FOREACH(unit *h, healers) { - h->set_facing(h->get_location().get_relative_dir(healed_loc)); - animator.add_animation(h, "healing", h->get_location(), - healed_loc, healing); -Index: src/editor/map_fragment.cpp -=================================================================== ---- src/editor/map_fragment.cpp (revision 54624) -+++ src/editor/map_fragment.cpp (revision 54625) -@@ -16,9 +16,10 @@ - - #include "map_fragment.hpp" - --#include "../foreach.hpp" - #include "util.hpp" - -+#include <boost/foreach.hpp> -+ - namespace editor { - - map_fragment::map_fragment() -@@ -44,7 +45,7 @@ - - void map_fragment::add_tiles(const gamemap& map, const std::set<map_location>& locs) - { -- foreach (const map_location& loc, locs) { -+ BOOST_FOREACH(const map_location& loc, locs) { - add_tile(map, loc); - } - } -@@ -57,7 +58,7 @@ - std::set<map_location> map_fragment::get_offset_area(const map_location& loc) const - { - std::set<map_location> result; -- foreach (const tile_info& i, items_) { -+ BOOST_FOREACH(const tile_info& i, items_) { - result.insert(i.offset.vector_sum(loc)); - } - return result; -@@ -65,14 +66,14 @@ - - void map_fragment::paste_into(gamemap& map, const map_location& loc) const - { -- foreach (const tile_info& i, items_) { -+ BOOST_FOREACH(const tile_info& i, items_) { - map.set_terrain(i.offset.vector_sum(loc), i.terrain); - } - } - - void map_fragment::shift(const map_location& offset) - { -- foreach (tile_info& ti, items_) { -+ BOOST_FOREACH(tile_info& ti, items_) { - ti.offset.vector_sum_assign(offset); - } - } -@@ -80,7 +81,7 @@ - map_location map_fragment::center_of_mass() const - { - map_location sum(0, 0); -- foreach (const tile_info& ti, items_) { -+ BOOST_FOREACH(const tile_info& ti, items_) { - sum.vector_sum_assign(ti.offset); - } - sum.x /= static_cast<int>(items_.size()); -@@ -92,7 +93,7 @@ - { - shift(center_of_mass().vector_negation()); - area_.clear(); -- foreach (tile_info& ti, items_) { -+ BOOST_FOREACH(tile_info& ti, items_) { - area_.insert(ti.offset); - } - } -@@ -100,7 +101,7 @@ - void map_fragment::rotate_60_cw() - { - area_.clear(); -- foreach (tile_info& ti, items_) { -+ BOOST_FOREACH(tile_info& ti, items_) { - map_location l(0,0); - int x = ti.offset.x; - int y = ti.offset.y; -@@ -120,7 +121,7 @@ - void map_fragment::rotate_60_ccw() - { - area_.clear(); -- foreach (tile_info& ti, items_) { -+ BOOST_FOREACH(tile_info& ti, items_) { - map_location l(0,0); - int x = ti.offset.x; - int y = ti.offset.y; -@@ -139,7 +140,7 @@ - - void map_fragment::flip_horizontal() - { -- foreach (tile_info& ti, items_) { -+ BOOST_FOREACH(tile_info& ti, items_) { - ti.offset.x = -ti.offset.x; - } - center_by_mass(); -@@ -147,7 +148,7 @@ - - void map_fragment::flip_vertical() - { -- foreach (tile_info& ti, items_) { -+ BOOST_FOREACH(tile_info& ti, items_) { - ti.offset.y = -ti.offset.y; - if (ti.offset.x % 2) { - ti.offset.y--; -@@ -166,11 +167,11 @@ - { - std::stringstream ss; - ss << "MF: "; -- foreach (const tile_info& ti, items_) { -+ BOOST_FOREACH(const tile_info& ti, items_) { - ss << "(" << ti.offset << ")"; - } - ss << " -- "; -- foreach (const map_location& loc, area_) { -+ BOOST_FOREACH(const map_location& loc, area_) { - ss << "(" << loc << ")"; - } - return ss.str(); -Index: src/editor/action.cpp -=================================================================== ---- src/editor/action.cpp (revision 54624) -+++ src/editor/action.cpp (revision 54625) -@@ -21,10 +21,10 @@ - - #include "editor/action.hpp" - #include "editor/map_context.hpp" --#include "foreach.hpp" - #include "gettext.hpp" - #include "util.hpp" - -+#include <boost/foreach.hpp> - namespace editor { - - int editor_action::next_id_ = 1; -@@ -75,25 +75,25 @@ - editor_action_chain::editor_action_chain(const editor::editor_action_chain &other) - : editor_action(), actions_() - { -- foreach (editor_action* a, other.actions_) { -+ BOOST_FOREACH(editor_action* a, other.actions_) { - actions_.push_back(a->clone()); - } - } - editor_action_chain& editor_action_chain::operator=(const editor_action_chain& other) - { - if (this == &other) return *this; -- foreach (editor_action* a, actions_) { -+ BOOST_FOREACH(editor_action* a, actions_) { - delete a; - } - actions_.clear(); -- foreach (editor_action* a, other.actions_) { -+ BOOST_FOREACH(editor_action* a, other.actions_) { - actions_.push_back(a->clone()); - } - return *this; - } - editor_action_chain::~editor_action_chain() - { -- foreach (editor_action* a, actions_) { -+ BOOST_FOREACH(editor_action* a, actions_) { - delete a; - } - } -@@ -103,7 +103,7 @@ - } - int editor_action_chain::action_count() const { - int count = 0; -- foreach (const editor_action* a, actions_) { -+ BOOST_FOREACH(const editor_action* a, actions_) { - if (a) { - count += a->action_count(); - } -@@ -133,7 +133,7 @@ - } - editor_action_chain* editor_action_chain::perform(map_context& mc) const { - util::unique_ptr<editor_action_chain> undo(new editor_action_chain()); -- foreach (editor_action* a, actions_) { -+ BOOST_FOREACH(editor_action* a, actions_) { - if (a != NULL) { - undo->append_action(a->perform(mc)); - } -@@ -143,7 +143,7 @@ - } - void editor_action_chain::perform_without_undo(map_context& mc) const - { -- foreach (editor_action* a, actions_) { -+ BOOST_FOREACH(editor_action* a, actions_) { - if (a != NULL) { - a->perform_without_undo(mc); - } -@@ -257,7 +257,7 @@ - } - void editor_action_select::extend(const editor_map& map, const std::set<map_location>& locs) - { -- foreach (const map_location& loc, locs) { -+ BOOST_FOREACH(const map_location& loc, locs) { - LOG_ED << "Checking " << loc << "\n"; - if (map.in_selection(loc)) { - LOG_ED << "Extending by " << loc << "\n"; -@@ -268,7 +268,7 @@ - editor_action* editor_action_select::perform(map_context& mc) const - { - std::set<map_location> undo_locs; -- foreach (const map_location& loc, area_) { -+ BOOST_FOREACH(const map_location& loc, area_) { - if (!mc.get_map().in_selection(loc)) { - undo_locs.insert(loc); - mc.add_changed_location(loc); -@@ -279,7 +279,7 @@ - } - void editor_action_select::perform_without_undo(map_context& mc) const - { -- foreach (const map_location& loc, area_) { -+ BOOST_FOREACH(const map_location& loc, area_) { - mc.get_map().add_to_selection(loc); - mc.add_changed_location(loc); - } -@@ -291,7 +291,7 @@ - } - void editor_action_deselect::extend(const editor_map& map, const std::set<map_location>& locs) - { -- foreach (const map_location& loc, locs) { -+ BOOST_FOREACH(const map_location& loc, locs) { - LOG_ED << "Checking " << loc << "\n"; - if (!map.in_selection(loc)) { - LOG_ED << "Extending by " << loc << "\n"; -@@ -302,7 +302,7 @@ - editor_action* editor_action_deselect::perform(map_context& mc) const - { - std::set<map_location> undo_locs; -- foreach (const map_location& loc, area_) { -+ BOOST_FOREACH(const map_location& loc, area_) { - if (mc.get_map().in_selection(loc)) { - undo_locs.insert(loc); - mc.add_changed_location(loc); -@@ -313,7 +313,7 @@ - } - void editor_action_deselect::perform_without_undo(map_context& mc) const - { -- foreach (const map_location& loc, area_) { -+ BOOST_FOREACH(const map_location& loc, area_) { - mc.get_map().remove_from_selection(loc); - mc.add_changed_location(loc); - } -Index: src/editor/map_context.cpp -=================================================================== ---- src/editor/map_context.cpp (revision 54624) -+++ src/editor/map_context.cpp (revision 54625) -@@ -19,7 +19,6 @@ - - #include "../display.hpp" - #include "../filesystem.hpp" --#include "../foreach.hpp" - #include "../gettext.hpp" - #include "../map_exception.hpp" - #include "../map_label.hpp" -@@ -28,6 +27,7 @@ - #include "formula_string_utils.hpp" - - #include <boost/regex.hpp> -+#include <boost/foreach.hpp> - - - namespace editor { -@@ -146,7 +146,7 @@ - if (!one_layer_only) { - terrain = map_.get_terrain_info(terrain).terrain_with_default_base(); - } -- foreach (const map_location& loc, locs) { -+ BOOST_FOREACH(const map_location& loc, locs) { - draw_terrain_actual(terrain, loc, one_layer_only); - } - } -@@ -374,7 +374,7 @@ - - void map_context::clear_stack(action_stack& stack) - { -- foreach (editor_action* a, stack) { -+ BOOST_FOREACH(editor_action* a, stack) { - delete a; - } - stack.clear(); -Index: src/editor/brush.cpp -=================================================================== ---- src/editor/brush.cpp (revision 54624) -+++ src/editor/brush.cpp (revision 54625) -@@ -17,9 +17,10 @@ - #include "brush.hpp" - #include "editor_common.hpp" - --#include "../foreach.hpp" - #include "../pathutils.hpp" - -+#include <boost/foreach.hpp> -+ - namespace editor { - - /*WIKI -@@ -74,11 +75,11 @@ - if (radius > 0) { - std::vector<map_location> in_radius; - get_tiles_in_radius(map_location(0, 0), radius, in_radius); -- foreach (map_location& loc, in_radius) { -+ BOOST_FOREACH(map_location& loc, in_radius) { - add_relative_location(loc.x, loc.y); - } - } -- foreach (const config &relative, cfg.child_range("relative")) -+ BOOST_FOREACH(const config &relative, cfg.child_range("relative")) - { - int x = relative["x"]; - int y = relative["y"]; -@@ -97,7 +98,7 @@ - std::set<map_location> brush::project(const map_location& hotspot) const - { - std::set<map_location> result; -- foreach (const map_location& relative, relative_tiles_) { -+ BOOST_FOREACH(const map_location& relative, relative_tiles_) { - result.insert(relative.vector_sum(hotspot)); - } - return result; -Index: src/editor/editor_map.cpp -=================================================================== ---- src/editor/editor_map.cpp (revision 54624) -+++ src/editor/editor_map.cpp (revision 54625) -@@ -20,12 +20,12 @@ - - #include "../display.hpp" - #include "../filesystem.hpp" --#include "../foreach.hpp" - #include "../gettext.hpp" - #include "../map_exception.hpp" - #include "../map_label.hpp" - #include "../wml_exception.hpp" - -+#include <boost/foreach.hpp> - - namespace editor { - -@@ -111,7 +111,7 @@ - ++errors; - } - } -- foreach (const map_location& loc, selection_) { -+ BOOST_FOREACH(const map_location& loc, selection_) { - if (!on_board_with_border(loc)) { - ERR_ED << "Off-map tile in selection: " << loc << "\n"; - } -Index: src/editor/editor_palettes.cpp -=================================================================== ---- src/editor/editor_palettes.cpp (revision 54624) -+++ src/editor/editor_palettes.cpp (revision 54625) -@@ -23,13 +23,14 @@ - #include "editor_common.hpp" - #include "editor_palettes.hpp" - --#include "../foreach.hpp" - #include "../gettext.hpp" - #include "../serialization/string_utils.hpp" - #include "../sound.hpp" - #include "../tooltips.hpp" - #include "../marked-up_text.hpp" - -+#include <boost/foreach.hpp> -+ - namespace { - static std::string selected_terrain; - } -@@ -84,7 +85,7 @@ - - // Get the available groups and add them to the structure - std::set<std::string> group_names; -- foreach (const config &g, cfg.child_range("editor_group")) -+ BOOST_FOREACH(const config &g, cfg.child_range("editor_group")) - { - if (group_names.find(g["id"]) == group_names.end()) { - terrain_groups_.push_back(terrain_group(g, gui)); -@@ -97,14 +98,14 @@ - } - } - std::map<std::string, terrain_group*> id_to_group; -- foreach (terrain_group& tg, terrain_groups_) { -+ BOOST_FOREACH(terrain_group& tg, terrain_groups_) { - id_to_group.insert(std::make_pair(tg.id, &tg)); - } - // The rest of the code assumes this is a valid pointer - assert(checked_group_btn_ != 0); - - // add the groups for all terrains to the map -- foreach (const t_translation::t_terrain& t, terrains_) { -+ BOOST_FOREACH(const t_translation::t_terrain& t, terrains_) { - const terrain_type& t_info = map().get_terrain_info(t); - DBG_ED << "Palette: processing terrain " << t_info.name() - << "(editor name: '" << t_info.editor_name() << "') " -@@ -119,7 +120,7 @@ - // add the terrain to the requested groups - const std::vector<std::string>& keys = utils::split(t_info.editor_group()); - bool core = false; -- foreach (const std::string& k, keys) { -+ BOOST_FOREACH(const std::string& k, keys) { - terrain_map_[k].push_back(t); - nmax_terrains_ = std::max(nmax_terrains_, terrain_map_[k].size()); - std::map<std::string, terrain_group*>::iterator i = id_to_group.find(k); -@@ -380,7 +381,7 @@ - scroll_down(); - } - -- foreach (terrain_group& g, terrain_groups_) { -+ BOOST_FOREACH(terrain_group& g, terrain_groups_) { - if (g.button.pressed()) { - checked_group_btn_ = &g.button; - set_group(g.id); -@@ -388,7 +389,7 @@ - } - } - -- foreach (terrain_group& g, terrain_groups_) { -+ BOOST_FOREACH(terrain_group& g, terrain_groups_) { - if (&g.button == checked_group_btn_) { - g.button.set_check(true); - } else { -Index: src/editor/editor_controller.cpp -=================================================================== ---- src/editor/editor_controller.cpp (revision 54624) -+++ src/editor/editor_controller.cpp (revision 54625) -@@ -32,7 +32,6 @@ - #include "../clipboard.hpp" - #include "../filechooser.hpp" - #include "../filesystem.hpp" --#include "../foreach.hpp" - #include "../game_preferences.hpp" - #include "../gettext.hpp" - #include "../map_create.hpp" -@@ -44,6 +43,7 @@ - #include "formula_string_utils.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - namespace { - static std::vector<std::string> saved_windows_; -@@ -135,7 +135,7 @@ - image::set_color_adjustment(preferences::editor::tod_r(), preferences::editor::tod_g(), preferences::editor::tod_b()); - theme& theme = gui().get_theme(); - const theme::menu* default_tool_menu = NULL; -- foreach (const theme::menu& m, theme.menus()) { -+ BOOST_FOREACH(const theme::menu& m, theme.menus()) { - if (m.get_id() == "draw_button_editor") { - default_tool_menu = &m; - break; -@@ -173,7 +173,7 @@ - - void editor_controller::init_brushes(const config& game_config) - { -- foreach (const config &i, game_config.child_range("brush")) { -+ BOOST_FOREACH(const config &i, game_config.child_range("brush")) { - brushes_.push_back(brush(i)); - } - if (brushes_.empty()) { -@@ -196,7 +196,7 @@ - new mouse_action_starting_position(key_))); - mouse_actions_.insert(std::make_pair(hotkey::HOTKEY_EDITOR_PASTE, - new mouse_action_paste(clipboard_, key_))); -- foreach (const theme::menu& menu, gui().get_theme().menus()) { -+ BOOST_FOREACH(const theme::menu& menu, gui().get_theme().menus()) { - if (menu.items().size() == 1) { - hotkey::HOTKEY_COMMAND hk = hotkey::get_hotkey(menu.items().front()).get_id(); - mouse_action_map::iterator i = mouse_actions_.find(hk); -@@ -205,7 +205,7 @@ - } - } - } -- foreach (const config &c, game_config.child_range("editor_tool_hint")) { -+ BOOST_FOREACH(const config &c, game_config.child_range("editor_tool_hint")) { - mouse_action_map::iterator i = - mouse_actions_.find(hotkey::get_hotkey(c["id"]).get_id()); - if (i != mouse_actions_.end()) { -@@ -216,7 +216,7 @@ - - void editor_controller::init_map_generators(const config& game_config) - { -- foreach (const config &i, game_config.child_range("multiplayer")) -+ BOOST_FOREACH(const config &i, game_config.child_range("multiplayer")) - { - if (i["map_generation"] == "default") { - const config &generator_cfg = i.child("generator"); -@@ -238,7 +238,7 @@ - ERR_ED << "No editor time-of-day defined\n"; - return; - } -- foreach (const config &i, cfg.child_range("time")) { -+ BOOST_FOREACH(const config &i, cfg.child_range("time")) { - tods_.push_back(time_of_day(i)); - } - } -@@ -250,7 +250,7 @@ - ERR_ED << "No editor music defined\n"; - return; - } -- foreach (const config &i, cfg.child_range("music")) { -+ BOOST_FOREACH(const config &i, cfg.child_range("music")) { - sound::play_music_config(i); - } - sound::commit_music_changes(); -@@ -265,13 +265,13 @@ - - editor_controller::~editor_controller() - { -- foreach (const mouse_action_map::value_type a, mouse_actions_) { -+ BOOST_FOREACH(const mouse_action_map::value_type a, mouse_actions_) { - delete a.second; - } -- foreach (map_generator* m, map_generators_) { -+ BOOST_FOREACH(map_generator* m, map_generators_) { - delete m; - } -- foreach (map_context* mc, map_contexts_) { -+ BOOST_FOREACH(map_context* mc, map_contexts_) { - delete mc; - } - } -@@ -303,7 +303,7 @@ - void editor_controller::quit_confirm(EXIT_STATUS mode) - { - std::vector<std::string> modified; -- foreach (map_context* mc, map_contexts_) { -+ BOOST_FOREACH(map_context* mc, map_contexts_) { - if (mc->modified()) { - if (!mc->get_filename().empty()) { - modified.push_back(mc->get_filename()); -@@ -319,7 +319,7 @@ - message = _("Do you really want to quit? Changes in the map since the last save will be lost."); - } else { - message = _("Do you really want to quit? The following maps were modified and all changes since the last save will be lost:"); -- foreach (std::string& str, modified) { -+ BOOST_FOREACH(std::string& str, modified) { - message += "\n" + str; - } - } -@@ -342,7 +342,7 @@ - map_context* mc = new map_context(editor_map(game_config_, 44, 33, t_translation::GRASS_LAND)); - add_map_context(mc); - } else { -- foreach(const std::string& filename, saved_windows_) { -+ BOOST_FOREACH(const std::string& filename, saved_windows_) { - map_context* mc = new map_context(game_config_, filename); - add_map_context(mc); - } -@@ -796,7 +796,7 @@ - get_map_context().set_needs_terrain_rebuild(false); - gui().invalidate_all(); - } else { -- foreach (const map_location& loc, changed_locs) { -+ BOOST_FOREACH(const map_location& loc, changed_locs) { - gui().rebuild_terrain(loc); - } - gui().invalidate(changed_locs); -@@ -1290,7 +1290,7 @@ - - void editor_controller::redraw_toolbar() - { -- foreach (mouse_action_map::value_type a, mouse_actions_) { -+ BOOST_FOREACH(mouse_action_map::value_type a, mouse_actions_) { - if (a.second->toolbar_button() != NULL) { - SDL_Rect r = a.second->toolbar_button()->location(gui().screen_area()); - SDL_Rect outline = create_rect(r.x - 2, r.y - 2, r.h + 4, r.w + 4); -Index: src/formula.cpp -=================================================================== ---- src/formula.cpp (revision 54624) -+++ src/formula.cpp (revision 54625) -@@ -17,11 +17,12 @@ - #include <set> - #include <sstream> - --#include "foreach.hpp" - #include "formula_callable.hpp" - #include "formula_function.hpp" - #include "map_utils.hpp" - -+#include <boost/foreach.hpp> -+ - namespace game_logic - { - -@@ -117,7 +118,7 @@ - std::stringstream s; - s << '['; - bool first_item = true; -- foreach(expression_ptr a , items_) { -+ BOOST_FOREACH(expression_ptr a , items_) { - if (!first_item) { - s << ','; - } else { -@@ -468,7 +469,7 @@ - std::stringstream s; - s << "{where:("; - s << body_->str(); -- foreach (const expr_table::value_type &a, *clauses_) { -+ BOOST_FOREACH(const expr_table::value_type &a, *clauses_) { - s << ", [" << a.first << "] -> ["<< a.second->str()<<"]"; - } - s << ")}"; -Index: src/mouse_events.cpp -=================================================================== ---- src/mouse_events.cpp (revision 54624) -+++ src/mouse_events.cpp (revision 54625) -@@ -21,7 +21,6 @@ - #include "actions.hpp" - #include "attack_prediction_display.hpp" - #include "dialogs.hpp" --#include "foreach.hpp" - #include "game_end_exceptions.hpp" - #include "game_events.hpp" - #include "gettext.hpp" -@@ -45,6 +44,7 @@ - #include "whiteboard/manager.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_engine("engine"); - #define ERR_NG LOG_STREAM(err, log_engine) -@@ -1048,7 +1048,7 @@ - - map_location adj[6]; - get_adjacent_tiles(loc, adj); -- foreach (const map_location &aloc, adj) { -+ BOOST_FOREACH(const map_location &aloc, adj) { - unit_map::const_iterator i = find_unit(aloc); - if (i != units_.end() && uteam.is_enemy(i->side())) - res.insert(aloc); -@@ -1063,7 +1063,7 @@ - - map_location adj[6]; - get_adjacent_tiles(u->get_location(), adj); -- foreach (const map_location &loc, adj) -+ BOOST_FOREACH(const map_location &loc, adj) - { - if (!map_.on_board(loc)) continue; - unit_map::const_iterator i = units_.find(loc); -Index: src/multiplayer_connect.cpp -=================================================================== ---- src/multiplayer_connect.cpp (revision 54624) -+++ src/multiplayer_connect.cpp (revision 54625) -@@ -23,7 +23,6 @@ - - #include "ai/configuration.hpp" - #include "dialogs.hpp" --#include "foreach.hpp" - #include "game_display.hpp" - #include "game_preferences.hpp" - #include "gettext.hpp" -@@ -39,6 +38,7 @@ - #include "wml_exception.hpp" - - #include <boost/bind.hpp> -+#include <boost/foreach.hpp> - - static lg::log_domain log_network("network"); - #define LOG_NW LOG_STREAM(info, log_network) -@@ -189,7 +189,7 @@ - // Hack: if there is a unit which can recruit, use it as a leader. - // Necessary to display leader information when loading saves. - std::string leader_type; -- foreach (const config &side_unit, cfg.child_range("unit")) -+ BOOST_FOREACH(const config &side_unit, cfg.child_range("unit")) - { - if (side_unit["canrecruit"].to_bool()) { - leader_type = side_unit["type"].str(); -@@ -539,7 +539,7 @@ - std::vector<ai::description*> &ais_list = parent_->ai_algorithms_; - std::vector<std::string> ais; - int i = 0; -- foreach (const ai::description *desc, ais_list){ -+ BOOST_FOREACH(const ai::description *desc, ais_list){ - ais.push_back(desc->text); - if (desc->id==ai_algorithm_){ - sel = i; -@@ -557,7 +557,7 @@ - void connect::side::update_faction_combo() - { - std::vector<std::string> factions; -- foreach (const config *faction, parent_->era_sides_) -+ BOOST_FOREACH(const config *faction, parent_->era_sides_) - { - const std::string& name = (*faction)["name"]; - const std::string& icon = (*faction)["image"]; -@@ -724,7 +724,7 @@ - static char const *attrs[] = { "side", "controller", "id", - "team_name", "user_team_name", "color", "colour", "gold", - "income", "allow_changes" }; -- foreach (const char *attr, attrs) { -+ BOOST_FOREACH(const char *attr, attrs) { - trimmed.remove_attribute(attr); - } - -@@ -827,8 +827,8 @@ - { - std::map<std::string, config> children; - -- foreach(const std::string& children_to_swap, get_children_to_swap()) -- foreach(const config& child, cfg_.child_range(children_to_swap)) -+ BOOST_FOREACH(const std::string& children_to_swap, get_children_to_swap()) -+ BOOST_FOREACH(const config& child, cfg_.child_range(children_to_swap)) - children.insert(std::pair<std::string, config>(children_to_swap, child)); - - return children; -@@ -836,12 +836,12 @@ - - void connect::side::set_side_children(std::map<std::string, config> children) - { -- foreach(const std::string& children_to_remove, get_children_to_swap()) -+ BOOST_FOREACH(const std::string& children_to_remove, get_children_to_swap()) - cfg_.clear_children(children_to_remove); - - std::pair<std::string, config> child_map; - -- foreach(child_map, children) -+ BOOST_FOREACH(child_map, children) - cfg_.add_child(child_map.first, child_map.second); - } - -@@ -920,7 +920,7 @@ - // Builds the list of sides eligible for choice (nonrandom factions) - std::vector<int> nonrandom_sides; - int num = -1; -- foreach (const config *i, parent_->era_sides_) -+ BOOST_FOREACH(const config *i, parent_->era_sides_) - { - ++num; - if (!(*i)["random_faction"].to_bool()) { -@@ -1524,7 +1524,7 @@ - player_types_.push_back(_("Computer Player")); - player_types_.push_back(_("Empty")); - -- foreach (const config *faction, era_sides_) { -+ BOOST_FOREACH(const config *faction, era_sides_) { - player_factions_.push_back((*faction)["name"]); - } - -@@ -1539,7 +1539,7 @@ - // Teams - if(params_.use_map_settings) { - int side_num = 1; -- foreach (config &side, sides) -+ BOOST_FOREACH(config &side, sides) - { - config::attribute_value &team_name = side["team_name"]; - config::attribute_value &user_team_name = side["user_team_name"]; -@@ -1566,7 +1566,7 @@ - } else { - std::vector<std::string> map_team_names; - int _side_num = 1; -- foreach (config &side, sides) -+ BOOST_FOREACH(config &side, sides) - { - const std::string side_num = lexical_cast<std::string>(_side_num); - config::attribute_value &team_name = side["team_name"]; -@@ -1599,7 +1599,7 @@ - - // Populates "sides_" from the level configuration - int index = 0; -- foreach (const config &s, sides) { -+ BOOST_FOREACH(const config &s, sides) { - sides_.push_back(side(*this, s, index++)); - } - int offset=0; -@@ -1683,7 +1683,7 @@ - else - { - era_sides_.clear(); -- foreach (const config &e, era_cfg.child_range("multiplayer_side")) { -+ BOOST_FOREACH(const config &e, era_cfg.child_range("multiplayer_side")) { - era_sides_.push_back(&e); - } - level_.add_child("era", era_cfg); -@@ -1789,7 +1789,7 @@ - * creative in what is used in multiplayer [1] so use a simpler test now. - * [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=568029 - */ -- foreach(const side& s, sides_) { -+ BOOST_FOREACH(const side& s, sides_) { - if(s.get_controller() != CNTR_EMPTY) { - if(s.allow_player()) { - return true; - ------------------------------------------------------------------------- diff --git a/community-testing/wesnoth/wesnoth.install b/community-testing/wesnoth/wesnoth.install deleted file mode 100644 index 4f1e419ae..000000000 --- a/community-testing/wesnoth/wesnoth.install +++ /dev/null @@ -1,9 +0,0 @@ -# arg 1: the new package version -post_install() { -cat << EOF -Note: -==> If you experience sound problems try setting your SDL_AUDIODRIVER environment variable to "dma" -==> eg. export SDL_AUDIODRIVER="dma" ; wesnoth -==> If "dma" doesn't work,other options are: dsp,alsa,artsc,esd,nas try to find the right output. -EOF -} diff --git a/community-testing/wesnoth/wesnoth.tmpfiles.conf b/community-testing/wesnoth/wesnoth.tmpfiles.conf deleted file mode 100644 index 3ec0f6013..000000000 --- a/community-testing/wesnoth/wesnoth.tmpfiles.conf +++ /dev/null @@ -1 +0,0 @@ -D /run/wesnothd 0700 root root - diff --git a/community-testing/wesnoth/wesnothd.rc.d b/community-testing/wesnoth/wesnothd.rc.d deleted file mode 100755 index 95e312b7b..000000000 --- a/community-testing/wesnoth/wesnothd.rc.d +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -. /etc/rc.conf -. /etc/rc.d/functions - -PID=$(pidof -o %PPID /usr/bin/wesnothd) - -case "$1" in - start) - stat_busy "Starting Wesnoth Server Daemon" - [[ -d /var/run/wesnothd ]] || mkdir /var/run/wesnothd - [ -z "$PID" ] && /usr/bin/wesnothd -d &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - PID=$(pidof -o %PPID /usr/bin/wesnothd) - echo $PID > /var/run/wesnotd/pid - add_daemon wesnothd - stat_done - fi - ;; - stop) - stat_busy "Stopping Wesnoth Server Daemon" - [ ! -z "$PID" ] && kill $PID &> /dev/null - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon wesnothd - stat_done - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - *) - echo "usage: $0 {start|stop|restart}" -esac -exit 0 |