From 1f5bec6fac04276c5ef84f4def70fd2302d8b4c3 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Wed, 26 Sep 2018 19:15:54 +0200 Subject: [PATCH] ncmpc: fix build with gcc 4.9 Add upstream patch to fix build on gcc 4.9 Fixes: - http://autobuild.buildroot.org/results/e3b1b1bdad841c151b70294d517dc75c5305b0fe Signed-off-by: Fabrice Fontaine Signed-off-by: Peter Korsgaard --- ...constructor-to-simplify-initializers.patch | 217 ++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 package/ncmpc/0002-Global-Bindings-add-KeyBindings-constructor-to-simplify-initializers.patch diff --git a/package/ncmpc/0002-Global-Bindings-add-KeyBindings-constructor-to-simplify-initializers.patch b/package/ncmpc/0002-Global-Bindings-add-KeyBindings-constructor-to-simplify-initializers.patch new file mode 100644 index 0000000000..217fa9b55b --- /dev/null +++ b/package/ncmpc/0002-Global-Bindings-add-KeyBindings-constructor-to-simplify-initializers.patch @@ -0,0 +1,217 @@ +From da27fcc39e187671b5e4373848f701a3d910446c Mon Sep 17 00:00:00 2001 +From: Max Kellermann +Date: Wed, 26 Sep 2018 09:51:09 +0200 +Subject: [PATCH] {Global,}Bindings: add KeyBindings constructor to simplify + initializers + +As a side effect, this works around a build failure with GCC 4.9. + +Signed-off-by: Fabrice Fontaine +[Retrieved from +https://github.com/MusicPlayerDaemon/ncmpc/commit/da27fcc39e187671b5e4373848f701a3d910446c +and updated for 0.31 (remove NEWS update)] +--- + src/Bindings.hxx | 3 + + src/GlobalBindings.cxx | 142 ++++++++++++++++++++--------------------- + 3 files changed, 75 insertions(+), 71 deletions(-) + +diff --git a/src/Bindings.hxx b/src/Bindings.hxx +index 342d951..0c630dc 100644 +--- a/src/Bindings.hxx ++++ b/src/Bindings.hxx +@@ -42,6 +42,9 @@ struct KeyBinding { + bool modified = false; + #endif + ++ constexpr KeyBinding(int a, int b=0, int c=0) noexcept ++ :keys{{a, b, c}} {} ++ + gcc_pure + bool HasKey(int key) const { + return std::find(keys.begin(), keys.end(), key) != keys.end(); +diff --git a/src/GlobalBindings.cxx b/src/GlobalBindings.cxx +index b565848..8049ed2 100644 +--- a/src/GlobalBindings.cxx ++++ b/src/GlobalBindings.cxx +@@ -51,110 +51,110 @@ + + static KeyBindings global_key_bindings{{{ + #ifdef ENABLE_KEYDEF_SCREEN +- { {'K', 0, 0 } }, ++ {'K'}, + #endif +- { { 'q', 'Q', C('C') } }, ++ {'q', 'Q', C('C')}, + + /* movement */ +- { { UP, 'k', 0 } }, +- { { DWN, 'j', 0 } }, +- { { 'H', 0, 0 } }, +- { { 'M', 0, 0 } }, +- { { 'L', 0, 0 } }, +- { { HOME, C('A'), 0 } }, +- { { END, C('E'), 0 } }, +- { { PGUP, 0, 0 } }, +- { { PGDN, 0, 0 } }, +- { { 'v', 0, 0 } }, +- { { C('N'), 0, 0 } }, +- { { C('B'), 0, 0 } }, +- { { 'N', 0, 0 } }, +- { { 'B', 0, 0 } }, +- { { 'l', 0, 0 } }, ++ {UP, 'k'}, ++ {DWN, 'j'}, ++ {'H'}, ++ {'M'}, ++ {'L'}, ++ {HOME, C('A')}, ++ {END, C('E')}, ++ {PGUP}, ++ {PGDN}, ++ {'v', 0}, ++ {C('N'), 0}, ++ {C('B'), 0}, ++ {'N', 0}, ++ {'B', 0}, ++ {'l'}, + + /* basic screens */ +- { { '1', F1, 'h' } }, +- { { '2', F2, 0 } }, +- { { '3', F3, 0 } }, ++ {'1', F1, 'h'}, ++ {'2', F2}, ++ {'3', F3}, + + /* player commands */ +- { { RET, 0, 0 } }, +- { { 'P', 0, 0 } }, +- { { 's', BS, 0 } }, +- { { 'o', 0, 0 } }, +- { { '>', 0, 0 } }, +- { { '<', 0, 0 } }, +- { { 'f', 0, 0 } }, +- { { 'b', 0, 0 } }, +- { { '+', RGHT, 0 } }, +- { { '-', LEFT, 0 } }, +- { { ' ', 0, 0 } }, +- { { 't', 0, 0 } }, +- { { DEL, 'd', 0 } }, +- { { 'Z', 0, 0 } }, +- { { 'c', 0, 0 } }, +- { { 'r', 0, 0 } }, +- { { 'z', 0, 0 } }, +- { { 'y', 0, 0 } }, +- { { 'C', 0, 0 } }, +- { { 'x', 0, 0 } }, +- { { C('U'), 0, 0 } }, +- { { 'S', 0, 0 } }, +- { { 'a', 0, 0 } }, +- +- { { '!', 0, 0 } }, +- { { '"', 0, 0 } }, +- +- { { 'G', 0, 0 } }, ++ {RET}, ++ {'P'}, ++ {'s', BS}, ++ {'o'}, ++ {'>'}, ++ {'<'}, ++ {'f'}, ++ {'b'}, ++ {'+', RGHT}, ++ {'-', LEFT}, ++ {' '}, ++ {'t'}, ++ {DEL, 'd'}, ++ {'Z'}, ++ {'c'}, ++ {'r'}, ++ {'z'}, ++ {'y'}, ++ {'C'}, ++ {'x'}, ++ {C('U')}, ++ {'S'}, ++ {'a'}, ++ ++ {'!'}, ++ {'"'}, ++ ++ {'G'}, + + /* lists */ +- { { C('K'), 0, 0 } }, +- { { C('J'), 0, 0 } }, +- { { C('L'), 0, 0 } }, ++ {C('K')}, ++ {C('J')}, ++ {C('L')}, + + + /* ncmpc options */ +- { { 'w', 0, 0 } }, +- { { 'U', 0, 0 } }, ++ {'w'}, ++ {'U'}, + + /* change screen */ +- { { TAB, 0, 0 } }, +- { { STAB, 0, 0 } }, +- { { '`', 0, 0 } }, ++ {TAB}, ++ {STAB}, ++ {'`'}, + + + /* find */ +- { { '/', 0, 0 } }, +- { { 'n', 0, 0 } }, +- { { '?', 0, 0 } }, +- { { 'p', 0, 0 } }, +- { { '.', 0, 0 } }, ++ {'/'}, ++ {'n'}, ++ {'?'}, ++ {'p'}, ++ {'.'}, + + + /* extra screens */ + #ifdef ENABLE_ARTIST_SCREEN +- { {'4', F4, 0 } }, ++ {'4', F4}, + #endif + #ifdef ENABLE_SEARCH_SCREEN +- { {'5', F5, 0 } }, +- { {'m', 0, 0 } }, ++ {'5', F5}, ++ {'m'}, + #endif + #ifdef ENABLE_SONG_SCREEN +- { { 'i', 0, 0 } }, ++ {'i'}, + #endif + #ifdef ENABLE_LYRICS_SCREEN +- { {'7', F7, 0 } }, +- { {ESC, 0, 0 } }, +- { {'u', 0, 0 } }, +- { {'e', 0, 0 } }, ++ {'7', F7}, ++ {ESC}, ++ {'u'}, ++ {'e'}, + #endif + + #ifdef ENABLE_OUTPUTS_SCREEN +- { {'8', F8, 0 } }, ++ {'8', F8}, + #endif + + #ifdef ENABLE_CHAT_SCREEN +- { {'9', F9, 0} }, ++ {'9', F9}, + #endif + }}}; + -- 2.30.2