This is an automated email from the git hooks/post-receive script. apo pushed a commit to branch master in repository widelands.
commit 2104a15f5898136cc20c929236ec1a8fdb67244f Author: Markus Koschany <[email protected]> Date: Wed Aug 23 23:07:32 2017 +0200 Add gcc7.patch and fix FTBFS with GCC 7. Closes: #871114 --- debian/changelog | 1 + debian/patches/gcc7.patch | 859 ++++++++++++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 861 insertions(+) diff --git a/debian/changelog b/debian/changelog index 92a419e..ed681f2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,7 @@ widelands (1:19+repack-4) UNRELEASED; urgency=medium * Vcs-Browser: Use canonical Vcs-URI. * Do not convert png files to xpm anymore. Drop imagemagick from B-D. * Move font dependencies from widelands to widelands-data. (Closes: #861043) + * Add gcc7.patch and fix FTBFS with GCC 7. (Closes: #871114) -- Markus Koschany <[email protected]> Wed, 23 Aug 2017 22:14:58 +0200 diff --git a/debian/patches/gcc7.patch b/debian/patches/gcc7.patch new file mode 100644 index 0000000..10091e6 --- /dev/null +++ b/debian/patches/gcc7.patch @@ -0,0 +1,859 @@ +From: Markus Koschany <[email protected]> +Date: Wed, 23 Aug 2017 23:07:01 +0200 +Subject: gcc7 + +--- + .travis.yml | 24 +++++++------------ + CMakeLists.txt | 5 ++-- + src/CMakeLists.txt | 1 + + src/base/macros.h | 10 ++++++++ + src/graphic/gl/fill_rect_program.cc | 6 ++--- + src/logic/CMakeLists.txt | 20 ++++++++++++---- + src/logic/game_controller.h | 2 +- + src/logic/game_settings.cc | 1 + + src/logic/game_settings.h | 11 +++++---- + src/logic/map_objects/immovable.cc | 2 +- + src/logic/map_objects/tribes/production_program.cc | 3 +-- + src/logic/map_objects/tribes/ship.cc | 5 ++-- + src/logic/mapfringeregion.cc | 14 +++++++---- + src/logic/player_end_result.h | 27 ++++++++++++++++++++++ + src/logic/playersmanager.h | 8 +------ + src/logic/single_player_game_controller.h | 1 + + src/network/netclient.cc | 3 +-- + src/network/netclient.h | 1 + + src/network/nethost.cc | 8 +++---- + src/network/nethost.h | 1 + + src/scripting/CMakeLists.txt | 1 + + src/scripting/lua_game.cc | 1 + + src/ui_basic/editbox.cc | 21 +++++++++-------- + src/ui_basic/listselect.cc | 10 ++++---- + src/ui_basic/multilineeditbox.cc | 17 +++++++------- + src/ui_fsmenu/loadgame.cc | 5 ++-- + src/wui/game_summary.cc | 11 +++++---- + src/wui/interactive_base.cc | 10 ++++---- + src/wui/interactive_player.cc | 2 +- + 29 files changed, 143 insertions(+), 88 deletions(-) + create mode 100644 src/logic/game_settings.cc + create mode 100644 src/logic/player_end_result.h + +diff --git a/.travis.yml b/.travis.yml +index b894510..f762f8a 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -19,43 +19,35 @@ matrix: + env: CLANG_VERSION="3.4" BUILD_TYPE="Debug" + - compiler: clang + env: CLANG_VERSION="3.5" BUILD_TYPE="Debug" +- - compiler: clang +- env: CLANG_VERSION="3.6" BUILD_TYPE="Debug" +- - compiler: clang +- env: CLANG_VERSION="3.7" BUILD_TYPE="Debug" +- - compiler: clang +- env: CLANG_VERSION="3.8" BUILD_TYPE="Debug" + - compiler: clang + env: CLANG_VERSION="3.9" BUILD_TYPE="Debug" ++ - compiler: clang ++ env: CLANG_VERSION="4.0" BUILD_TYPE="Debug" + - compiler: clang + env: CLANG_VERSION="3.4" BUILD_TYPE="Release" + - compiler: clang + env: CLANG_VERSION="3.5" BUILD_TYPE="Release" +- - compiler: clang +- env: CLANG_VERSION="3.6" BUILD_TYPE="Release" +- - compiler: clang +- env: CLANG_VERSION="3.7" BUILD_TYPE="Release" +- - compiler: clang +- env: CLANG_VERSION="3.8" BUILD_TYPE="Release" + - compiler: clang + env: CLANG_VERSION="3.9" BUILD_TYPE="Release" ++ - compiler: clang ++ env: CLANG_VERSION="4.0" BUILD_TYPE="Release" + - compiler: gcc + env: GCC_VERSION="4.7" BUILD_TYPE="Debug" + - compiler: gcc + env: GCC_VERSION="4.8" BUILD_TYPE="Debug" + - compiler: gcc + env: GCC_VERSION="4.9" BUILD_TYPE="Debug" +- - compiler: gcc +- env: GCC_VERSION="5" BUILD_TYPE="Debug" + - compiler: gcc + env: GCC_VERSION="6" BUILD_TYPE="Debug" ++ - compiler: gcc ++ env: GCC_VERSION="7" BUILD_TYPE="Debug" + - compiler: gcc + env: GCC_VERSION="4.7" BUILD_TYPE="Release" + - compiler: gcc + env: GCC_VERSION="4.8" BUILD_TYPE="Release" + - compiler: gcc + env: GCC_VERSION="4.9" BUILD_TYPE="Release" +- - compiler: gcc +- env: GCC_VERSION="5" BUILD_TYPE="Release" + - compiler: gcc + env: GCC_VERSION="6" BUILD_TYPE="Release" ++ - compiler: gcc ++ env: GCC_VERSION="7" BUILD_TYPE="Release" +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f6f1bff..d08355f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -119,7 +119,6 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-padded") + wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-sign-conversion") + wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-missing-noreturn") +- wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-implicit-fallthrough") + + # TODO(sirver): weak-vtables should be enabled, but leads to lot of errors right now. + wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-weak-vtables") +@@ -135,6 +134,9 @@ else() + if(WIN32) + # This is needed for getenv(). + wl_add_flag(WL_GENERIC_CXX_FLAGS "-std=gnu++11") ++ else() ++ # SDL and MinGW both declare 'unsigned int __builtin_ia32_crc32qi(unsigned int, unsigned char)', resulting in lots of warnings. So, we can't have this flag in Windows. ++ wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wredundant-decls") + endif() + + if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)) +@@ -170,7 +172,6 @@ else() + wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Woverlength-strings") + wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wpacked") + wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wpointer-arith") +- wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wredundant-decls") + wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wsign-promo") + wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wsync-nand") + wl_add_flag(WL_COMPILE_DIAGNOSTICS "-Wtrampolines") +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index ff21685..6512646 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -113,6 +113,7 @@ wl_library(widelands_ball_of_mud + logic + logic_game_controller + logic_game_settings ++ logic_single_player_game_settings + map_io_map_loader + network + profile +diff --git a/src/base/macros.h b/src/base/macros.h +index 29ec81c..c9b2169 100644 +--- a/src/base/macros.h ++++ b/src/base/macros.h +@@ -67,6 +67,16 @@ + #define DIAG_OFF(x) GCC_DIAG_OFF(x) CLANG_DIAG_OFF(x) + #define DIAG_ON(x) GCC_DIAG_ON(x) CLANG_DIAG_ON(x) + ++// For switch statements: Tell gcc7 and clang that a fallthrough is intended ++// https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/ ++#ifdef __clang__ ++#define FALLS_THROUGH /* Falls through */ [[clang::fallthrough]] ++#elif __GNUC__ >= 7 ++#define FALLS_THROUGH /* Falls through */ [[gnu::fallthrough]] ++#else ++#define FALLS_THROUGH /* Falls through */ ++#endif ++ + // disallow copying or assigning a class + #define DISALLOW_COPY_AND_ASSIGN(TypeName) \ + TypeName(const TypeName&) = delete; \ +diff --git a/src/graphic/gl/fill_rect_program.cc b/src/graphic/gl/fill_rect_program.cc +index bbc36ef..568a360 100644 +--- a/src/graphic/gl/fill_rect_program.cc ++++ b/src/graphic/gl/fill_rect_program.cc +@@ -21,7 +21,7 @@ + + #include <vector> + +-#include "base/log.h" ++#include "base/macros.h" + #include "base/wexception.h" + + // static +@@ -66,7 +66,7 @@ void FillRectProgram::draw(const std::vector<Arguments>& arguments) { + switch (template_args.blend_mode) { + case BlendMode::Subtract: + glBlendEquation(GL_FUNC_REVERSE_SUBTRACT); +- /* fallthrough intended */ ++ FALLS_THROUGH; + case BlendMode::UseAlpha: + glBlendFunc(GL_ONE, GL_ONE); + break; +@@ -132,7 +132,7 @@ void FillRectProgram::draw(const std::vector<Arguments>& arguments) { + switch (template_args.blend_mode) { + case BlendMode::Subtract: + glBlendEquation(GL_FUNC_ADD); +- /* fallthrough intended */ ++ FALLS_THROUGH; + case BlendMode::UseAlpha: + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + break; +diff --git a/src/logic/CMakeLists.txt b/src/logic/CMakeLists.txt +index 120dd82..f3f2470 100644 +--- a/src/logic/CMakeLists.txt ++++ b/src/logic/CMakeLists.txt +@@ -4,20 +4,29 @@ wl_library(logic_widelands_geometry + widelands_geometry.h + ) + +-wl_library(logic_game_settings ++ wl_library(logic_game_settings + SRCS ++ game_settings.cc + game_settings.h +- single_player_game_settings_provider.cc +- single_player_game_settings_provider.h ++ player_end_result.h + DEPENDS +- ai +- base_exceptions + io_filesystem + logic + scripting_lua_interface + scripting_lua_table + ) + ++wl_library(logic_single_player_game_settings ++ SRCS ++ single_player_game_settings_provider.cc ++ single_player_game_settings_provider.h ++ DEPENDS ++ ai ++ base_exceptions ++ logic ++ logic_game_settings ++ ) ++ + wl_library(logic_game_controller + SRCS + game_controller.h +@@ -28,6 +37,7 @@ wl_library(logic_game_controller + DEPENDS + ai + logic ++ logic_game_settings + profile + ui_basic + widelands_ball_of_mud +diff --git a/src/logic/game_controller.h b/src/logic/game_controller.h +index 06d12c8..bddbc84 100644 +--- a/src/logic/game_controller.h ++++ b/src/logic/game_controller.h +@@ -22,12 +22,12 @@ + + #include <string> + ++#include "logic/player_end_result.h" + #include "logic/widelands.h" + + namespace Widelands { + class Game; + class PlayerCommand; +-enum class PlayerEndResult : uint8_t; + } + + /** +diff --git a/src/logic/game_settings.cc b/src/logic/game_settings.cc +new file mode 100644 +index 0000000..e4501e1 +--- /dev/null ++++ b/src/logic/game_settings.cc +@@ -0,0 +1 @@ ++// Dummy to make CMake happy +diff --git a/src/logic/game_settings.h b/src/logic/game_settings.h +index 0c56aad..bd57801 100644 +--- a/src/logic/game_settings.h ++++ b/src/logic/game_settings.h +@@ -26,14 +26,11 @@ + + #include "io/filesystem/layered_filesystem.h" + #include "logic/map_objects/tribes/tribe_basic_info.h" ++#include "logic/player_end_result.h" + #include "logic/widelands.h" + #include "scripting/lua_interface.h" + #include "scripting/lua_table.h" + +-namespace Widelands { +-enum class PlayerEndResult : uint8_t; +-} +- + struct PlayerSettings { + enum State { stateOpen, stateHuman, stateComputer, stateClosed, stateShared }; + +@@ -60,6 +57,12 @@ struct UserSettings { + return not_connected() - 1; + } + ++ UserSettings(Widelands::PlayerEndResult init_result, bool init_ready) ++ : position(0), name(""), result(init_result), win_condition_string(""), ready(init_ready) { ++ } ++ UserSettings() : UserSettings(Widelands::PlayerEndResult::kUndefined, false) { ++ } ++ + uint8_t position; + std::string name; + Widelands::PlayerEndResult result; +diff --git a/src/logic/map_objects/immovable.cc b/src/logic/map_objects/immovable.cc +index 3e1ab2e..8886396 100644 +--- a/src/logic/map_objects/immovable.cc ++++ b/src/logic/map_objects/immovable.cc +@@ -947,7 +947,7 @@ ImmovableProgram::ActSeed::ActSeed(char* parameters, ImmovableDescr& descr) { + probability = value; + // fallthrough + } +- /* no break */ ++ FALLS_THROUGH; + case '\0': + goto end; + default: +diff --git a/src/logic/map_objects/tribes/production_program.cc b/src/logic/map_objects/tribes/production_program.cc +index c06cc04..95a2aa3 100644 +--- a/src/logic/map_objects/tribes/production_program.cc ++++ b/src/logic/map_objects/tribes/production_program.cc +@@ -245,9 +245,8 @@ void ProductionProgram::parse_ware_type_group(char*& parameters, + "the specified ware type(s) is only %u, so the group can " + "never be fulfilled by the site", + count, count_max); +- // fallthrough + } +- /* no break */ ++ FALLS_THROUGH; + case '\0': + case ' ': + group.second = count; +diff --git a/src/logic/map_objects/tribes/ship.cc b/src/logic/map_objects/tribes/ship.cc +index fd2ebcf..b2a7032 100644 +--- a/src/logic/map_objects/tribes/ship.cc ++++ b/src/logic/map_objects/tribes/ship.cc +@@ -274,14 +274,13 @@ void Ship::ship_update(Game& game, Bob::State& state) { + return; + } + log("Oh no... this ship has no sinking animation :(!\n"); +- // fall trough ++ FALLS_THROUGH; + case ShipStates::kSinkAnimation: + // The sink animation has been played, so finally remove the ship from the map + pop_task(game); + remove(game); + return; + } +- + // if the real update function failed (e.g. nothing to transport), the ship goes idle + ship_update_idle(game, state); + } +@@ -685,7 +684,7 @@ void Ship::ship_update_idle(Game& game, Bob::State& state) { + return start_task_idle(game, descr().main_animation(), 1500); + } + } +- ++ FALLS_THROUGH; + case ShipStates::kExpeditionWaiting: + case ShipStates::kExpeditionPortspaceFound: + case ShipStates::kSinkRequest: +diff --git a/src/logic/mapfringeregion.cc b/src/logic/mapfringeregion.cc +index 4039e87..52403c1 100644 +--- a/src/logic/mapfringeregion.cc ++++ b/src/logic/mapfringeregion.cc +@@ -29,9 +29,11 @@ template <> bool MapFringeRegion<Area<FCoords>>::advance(const Map& map) { + if (area_.radius) { + remaining_in_phase_ = area_.radius; + phase_ = 6; +- } else ++ // Fallthrough ++ } else { + return false; +- /* no break */ ++ } ++ FALLS_THROUGH; + case 1: + map.get_trn(area_, &area_); + break; +@@ -53,6 +55,7 @@ template <> bool MapFringeRegion<Area<FCoords>>::advance(const Map& map) { + default: + NEVER_HERE(); + } ++ + if (--remaining_in_phase_ == 0) { + remaining_in_phase_ = area_.radius; + --phase_; +@@ -66,9 +69,11 @@ template <> bool MapFringeRegion<Area<>>::advance(const Map& map) { + if (area_.radius) { + remaining_in_phase_ = area_.radius; + phase_ = 6; +- } else ++ // Fallthrough ++ } else { + return false; +- /* no break */ ++ } ++ FALLS_THROUGH; + case 1: + map.get_trn(area_, &area_); + break; +@@ -90,6 +95,7 @@ template <> bool MapFringeRegion<Area<>>::advance(const Map& map) { + default: + NEVER_HERE(); + } ++ + if (--remaining_in_phase_ == 0) { + remaining_in_phase_ = area_.radius; + --phase_; +diff --git a/src/logic/player_end_result.h b/src/logic/player_end_result.h +new file mode 100644 +index 0000000..1f794d2 +--- /dev/null ++++ b/src/logic/player_end_result.h +@@ -0,0 +1,27 @@ ++/* ++ * Copyright (C) 2008-2017 by the Widelands Development Team ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ * ++ */ ++ ++#ifndef WL_LOGIC_PLAYER_END_RESULT_H ++#define WL_LOGIC_PLAYER_END_RESULT_H ++ ++namespace Widelands { ++enum class PlayerEndResult : uint8_t { kLost = 0, kWon = 1, kResigned = 2, kUndefined = 255 }; ++} ++ ++#endif // end of include guard: WL_LOGIC_PLAYER_END_RESULT_H +diff --git a/src/logic/playersmanager.h b/src/logic/playersmanager.h +index 19303f4..585e691 100644 +--- a/src/logic/playersmanager.h ++++ b/src/logic/playersmanager.h +@@ -24,6 +24,7 @@ + #include <vector> + + #include "logic/constants.h" ++#include "logic/player_end_result.h" + #include "logic/widelands.h" + + namespace Widelands { +@@ -32,13 +33,6 @@ class EditorGameBase; + class Player; + class Player; + +-enum class PlayerEndResult : uint8_t { +- PLAYER_LOST = 0, +- PLAYER_WON = 1, +- PLAYER_RESIGNED = 2, +- UNDEFINED = 255 +-}; +- + /** + * Hold data once a player left the game, or on game ends. + * Allowed values for the info string, as key=value pairs separated +diff --git a/src/logic/single_player_game_controller.h b/src/logic/single_player_game_controller.h +index 926748b..5279af9 100644 +--- a/src/logic/single_player_game_controller.h ++++ b/src/logic/single_player_game_controller.h +@@ -22,6 +22,7 @@ + + #include "ai/computer_player.h" + #include "logic/game_controller.h" ++#include "logic/player_end_result.h" + + class SinglePlayerGameController : public GameController { + public: +diff --git a/src/network/netclient.cc b/src/network/netclient.cc +index dba73fc..c476ae3 100644 +--- a/src/network/netclient.cc ++++ b/src/network/netclient.cc +@@ -476,8 +476,7 @@ void NetClient::receive_one_user(uint32_t const number, StreamRead& packet) { + + // This might happen, if a users connects after the game starts. + if (number == d->settings.users.size()) { +- UserSettings newuser; +- d->settings.users.push_back(newuser); ++ d->settings.users.push_back(*new UserSettings()); + } + + d->settings.users.at(number).name = packet.string(); +diff --git a/src/network/netclient.h b/src/network/netclient.h +index 324b643..6320be6 100644 +--- a/src/network/netclient.h ++++ b/src/network/netclient.h +@@ -23,6 +23,7 @@ + #include "chat/chat.h" + #include "logic/game_controller.h" + #include "logic/game_settings.h" ++#include "logic/player_end_result.h" + #include "network/network.h" + + struct NetClientImpl; +diff --git a/src/network/nethost.cc b/src/network/nethost.cc +index a6a159c..131041b 100644 +--- a/src/network/nethost.cc ++++ b/src/network/nethost.cc +@@ -143,7 +143,7 @@ struct HostGameSettingsProvider : public GameSettingsProvider { + newstate = PlayerSettings::stateClosed; + break; + } // else fall through +- /* no break */ ++ FALLS_THROUGH; + case PlayerSettings::stateComputer: { + const ComputerPlayer::ImplementationVector& impls = ComputerPlayer::get_implementations(); + ComputerPlayer::ImplementationVector::const_iterator it = impls.begin(); +@@ -1605,14 +1605,14 @@ void NetHost::welcome_client(uint32_t const number, std::string& playername) { + for (uint32_t i = 0; i < d->settings.users.size(); ++i) + if (d->settings.users[i].position == UserSettings::not_connected()) { + client.usernum = i; +- d->settings.users[i].result = Widelands::PlayerEndResult::UNDEFINED; ++ d->settings.users[i].result = Widelands::PlayerEndResult::kUndefined; + d->settings.users[i].ready = true; + break; + } + if (client.usernum == -1) { + client.usernum = d->settings.users.size(); + UserSettings newuser; +- newuser.result = Widelands::PlayerEndResult::UNDEFINED; ++ newuser.result = Widelands::PlayerEndResult::kUndefined; + newuser.ready = true; + d->settings.users.push_back(newuser); + } +@@ -2404,7 +2404,7 @@ void NetHost::report_result(uint8_t p_nr, + if (user.position == p_nr - 1) { + user.result = result; + user.win_condition_string = info; +- if (result == Widelands::PlayerEndResult::PLAYER_LOST) { ++ if (result == Widelands::PlayerEndResult::kLost) { + send_system_message_code("PLAYER_DEFEATED", user.name); + } + } +diff --git a/src/network/nethost.h b/src/network/nethost.h +index 04fe9e4..543d7bb 100644 +--- a/src/network/nethost.h ++++ b/src/network/nethost.h +@@ -22,6 +22,7 @@ + + #include "logic/game_controller.h" + #include "logic/game_settings.h" ++#include "logic/player_end_result.h" + #include "logic/widelands.h" + #include "network/network.h" + +diff --git a/src/scripting/CMakeLists.txt b/src/scripting/CMakeLists.txt +index 493631d..13aac75 100644 +--- a/src/scripting/CMakeLists.txt ++++ b/src/scripting/CMakeLists.txt +@@ -110,6 +110,7 @@ wl_library(scripting_logic + logic + logic_campaign_visibility + logic_game_controller ++ logic_game_settings + logic_widelands_geometry + map_io + scripting_base +diff --git a/src/scripting/lua_game.cc b/src/scripting/lua_game.cc +index f78c386..bedc4cd 100644 +--- a/src/scripting/lua_game.cc ++++ b/src/scripting/lua_game.cc +@@ -33,6 +33,7 @@ + #include "logic/objective.h" + #include "logic/path.h" + #include "logic/player.h" ++#include "logic/player_end_result.h" + #include "logic/playersmanager.h" + #include "scripting/globals.h" + #include "scripting/lua_interface.h" +diff --git a/src/ui_basic/editbox.cc b/src/ui_basic/editbox.cc +index ca6aceb..18b6cff 100644 +--- a/src/ui_basic/editbox.cc ++++ b/src/ui_basic/editbox.cc +@@ -219,15 +219,16 @@ bool EditBox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_DELETE: + if (m_->caret < m_->text.size()) { + while ((m_->text[++m_->caret] & 0xc0) == 0x80) { + }; +- // now handle it like Backspace +- } else ++ // Now fallthrough to handle it like Backspace ++ } else { + return true; +- /* no break */ ++ } ++ FALLS_THROUGH; + case SDLK_BACKSPACE: + if (m_->caret > 0) { + while ((m_->text[--m_->caret] & 0xc0) == 0x80) +@@ -242,7 +243,7 @@ bool EditBox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_LEFT: + if (m_->caret > 0) { + while ((m_->text[--m_->caret] & 0xc0) == 0x80) { +@@ -260,7 +261,7 @@ bool EditBox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_RIGHT: + if (m_->caret < m_->text.size()) { + while ((m_->text[++m_->caret] & 0xc0) == 0x80) { +@@ -280,7 +281,7 @@ bool EditBox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_HOME: + if (m_->caret != 0) { + m_->caret = 0; +@@ -293,7 +294,7 @@ bool EditBox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_END: + if (m_->caret != m_->text.size()) { + m_->caret = m_->text.size(); +@@ -305,7 +306,7 @@ bool EditBox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_UP: + // Load entry from history if active and text is not empty + if (history_active_) { +@@ -323,7 +324,7 @@ bool EditBox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_DOWN: + // Load entry from history if active and text is not equivalent to the current one + if (history_active_) { +diff --git a/src/ui_basic/listselect.cc b/src/ui_basic/listselect.cc +index 696d4e5..1636f5b 100644 +--- a/src/ui_basic/listselect.cc ++++ b/src/ui_basic/listselect.cc +@@ -454,9 +454,10 @@ bool BaseListselect::handle_key(bool const down, SDL_Keysym const code) { + uint32_t selected_idx; + switch (code.sym) { + case SDLK_KP_2: +- if (code.mod & KMOD_NUM) ++ if (code.mod & KMOD_NUM) { + break; +- /* no break */ ++ } ++ FALLS_THROUGH; + case SDLK_DOWN: + selected_idx = selection_index() + 1; + if (selected_idx < size()) +@@ -468,9 +469,10 @@ bool BaseListselect::handle_key(bool const down, SDL_Keysym const code) { + } + return true; + case SDLK_KP_8: +- if (code.mod & KMOD_NUM) ++ if (code.mod & KMOD_NUM) { + break; +- /* no break */ ++ } ++ FALLS_THROUGH; + case SDLK_UP: + selected_idx = selection_index(); + if (selected_idx > 0) +diff --git a/src/ui_basic/multilineeditbox.cc b/src/ui_basic/multilineeditbox.cc +index 83830bc..e62ba03 100644 +--- a/src/ui_basic/multilineeditbox.cc ++++ b/src/ui_basic/multilineeditbox.cc +@@ -235,9 +235,10 @@ bool MultilineEditbox::handle_key(bool const down, SDL_Keysym const code) { + // Let the panel handle the tab key + return get_parent()->handle_key(true, code); + case SDLK_KP_PERIOD: +- if (code.mod & KMOD_NUM) ++ if (code.mod & KMOD_NUM) { + break; +- /* no break */ ++ } ++ FALLS_THROUGH; + case SDLK_DELETE: + if (d_->cursor_pos < d_->text.size()) { + d_->erase_bytes(d_->cursor_pos, d_->next_char(d_->cursor_pos)); +@@ -256,7 +257,7 @@ bool MultilineEditbox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_LEFT: { + if (code.mod & (KMOD_LCTRL | KMOD_RCTRL)) { + uint32_t newpos = d_->prev_char(d_->cursor_pos); +@@ -279,7 +280,7 @@ bool MultilineEditbox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_RIGHT: + if (code.mod & (KMOD_LCTRL | KMOD_RCTRL)) { + uint32_t newpos = d_->next_char(d_->cursor_pos); +@@ -297,7 +298,7 @@ bool MultilineEditbox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_DOWN: + if (d_->cursor_pos < d_->text.size()) { + d_->refresh_ww(); +@@ -326,7 +327,7 @@ bool MultilineEditbox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_UP: + if (d_->cursor_pos > 0) { + d_->refresh_ww(); +@@ -353,7 +354,7 @@ bool MultilineEditbox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_HOME: + if (code.mod & (KMOD_LCTRL | KMOD_RCTRL)) { + d_->set_cursor_pos(0); +@@ -371,7 +372,7 @@ bool MultilineEditbox::handle_key(bool const down, SDL_Keysym const code) { + if (code.mod & KMOD_NUM) { + break; + } +- /* no break */ ++ FALLS_THROUGH; + case SDLK_END: + if (code.mod & (KMOD_LCTRL | KMOD_RCTRL)) { + d_->set_cursor_pos(d_->text.size()); +diff --git a/src/ui_fsmenu/loadgame.cc b/src/ui_fsmenu/loadgame.cc +index 5e5fd46..9f5f03e 100644 +--- a/src/ui_fsmenu/loadgame.cc ++++ b/src/ui_fsmenu/loadgame.cc +@@ -631,9 +631,10 @@ bool FullscreenMenuLoadGame::handle_key(bool down, SDL_Keysym code) { + + switch (code.sym) { + case SDLK_KP_PERIOD: +- if (code.mod & KMOD_NUM) ++ if (code.mod & KMOD_NUM) { + break; +- /* no break */ ++ } ++ FALLS_THROUGH; + case SDLK_DELETE: + clicked_delete(); + return true; +diff --git a/src/wui/game_summary.cc b/src/wui/game_summary.cc +index c0864cc..496b1c4 100644 +--- a/src/wui/game_summary.cc ++++ b/src/wui/game_summary.cc +@@ -26,6 +26,7 @@ + #include "graphic/graphic.h" + #include "logic/game.h" + #include "logic/player.h" ++#include "logic/player_end_result.h" + #include "logic/playersmanager.h" + #include "ui_basic/box.h" + #include "ui_basic/button.h" +@@ -147,7 +148,7 @@ void GameSummaryScreen::fill_data() { + Widelands::PlayerEndStatus pes = players_status.at(i); + if (ipl && pes.player == ipl->player_number()) { + local_in_game = true; +- local_won = pes.result == Widelands::PlayerEndResult::PLAYER_WON; ++ local_won = pes.result == Widelands::PlayerEndResult::kWon; + current_player_position = i; + } + Widelands::Player* p = game_.get_player(pes.player); +@@ -163,11 +164,11 @@ void GameSummaryScreen::fill_data() { + // Status + std::string stat_str; + switch (pes.result) { +- case Widelands::PlayerEndResult::PLAYER_LOST: ++ case Widelands::PlayerEndResult::kLost: + /** TRANSLATORS: This is shown in the game summary for the players who have lost. */ + stat_str = _("Lost"); + break; +- case Widelands::PlayerEndResult::PLAYER_WON: ++ case Widelands::PlayerEndResult::kWon: + /** TRANSLATORS: This is shown in the game summary for the players who have won. */ + stat_str = _("Won"); + if (!single_won) { +@@ -176,11 +177,11 @@ void GameSummaryScreen::fill_data() { + teawon_ = p->team_number(); + } + break; +- case Widelands::PlayerEndResult::PLAYER_RESIGNED: ++ case Widelands::PlayerEndResult::kResigned: + /** TRANSLATORS: This is shown in the game summary for the players who have resigned. */ + stat_str = _("Resigned"); + break; +- case Widelands::PlayerEndResult::UNDEFINED: ++ case Widelands::PlayerEndResult::kUndefined: + /** TRANSLATORS: This is shown in the game summary when we don't know */ + /** TRANSLATORS: if the player has lost or won. */ + stat_str = pgettext("player_won", "Unknown"); +diff --git a/src/wui/interactive_base.cc b/src/wui/interactive_base.cc +index 0595cf8..e9c5a24 100644 +--- a/src/wui/interactive_base.cc ++++ b/src/wui/interactive_base.cc +@@ -774,9 +774,10 @@ bool InteractiveBase::handle_key(bool const down, SDL_Keysym const code) { + if (down) { + switch (code.sym) { + case SDLK_KP_9: +- if (code.mod & KMOD_NUM) ++ if (code.mod & KMOD_NUM) { + break; +- /* no break */ ++ } ++ FALLS_THROUGH; + case SDLK_PAGEUP: + if (upcast(Game, game, &egbase_)) { + if (GameController* const ctrl = game->game_controller()) { +@@ -794,9 +795,10 @@ bool InteractiveBase::handle_key(bool const down, SDL_Keysym const code) { + return true; + + case SDLK_KP_3: +- if (code.mod & KMOD_NUM) ++ if (code.mod & KMOD_NUM) { + break; +- /* no break */ ++ } ++ FALLS_THROUGH; + case SDLK_PAGEDOWN: + if (upcast(Widelands::Game, game, &egbase_)) { + if (GameController* const ctrl = game->game_controller()) { +diff --git a/src/wui/interactive_player.cc b/src/wui/interactive_player.cc +index 90264a2..79ee1bc 100644 +--- a/src/wui/interactive_player.cc ++++ b/src/wui/interactive_player.cc +@@ -320,7 +320,7 @@ bool InteractivePlayer::handle_key(bool const down, SDL_Keysym const code) { + case SDLK_KP_7: + if (code.mod & KMOD_NUM) + break; +- /* no break */ ++ FALLS_THROUGH; + case SDLK_HOME: + move_view_to(game().map().get_starting_pos(player_number_)); + return true; diff --git a/debian/patches/series b/debian/patches/series index 70c0f36..aaa0a0f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ system-wide_minizip hurd_PATH_MAX_missing dbg_symbols +gcc7.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/widelands.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

