summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2018-07-30 07:15:17 +0100
committerMaxime Coste <mawww@kakoune.org>2018-07-30 07:15:17 +0100
commitd2509e54f2d4953e12ecb0d1acca3a6761b1abf5 (patch)
tree7858415b15d3c38b89d54e628b7480faf87739ae /src
parentbd9895ea86c9151b2df5900ac79e26a1772fad65 (diff)
Fix compilation with gcc-5
Gcc-5 seems to have a bug in its handling of template variable. Fixes #2267
Diffstat (limited to 'src')
-rw-r--r--src/commands.cc51
1 files changed, 25 insertions, 26 deletions
diff --git a/src/commands.cc b/src/commands.cc
index 02e797c5..dcee0281 100644
--- a/src/commands.cc
+++ b/src/commands.cc
@@ -1498,33 +1498,32 @@ const CommandDesc declare_option_cmd = {
};
template<bool unmap>
-static auto map_key_completer =
- [](const Context& context, CompletionFlags flags,
- CommandParameters params, size_t token_to_complete,
- ByteCount pos_in_token) -> Completions
+static Completions map_key_completer(const Context& context, CompletionFlags flags,
+ CommandParameters params, size_t token_to_complete,
+ ByteCount pos_in_token)
+{
+ if (token_to_complete == 0)
+ return { 0_byte, params[0].length(),
+ complete(params[0], pos_in_token, scopes) };
+ if (token_to_complete == 1)
{
- if (token_to_complete == 0)
- return { 0_byte, params[0].length(),
- complete(params[0], pos_in_token, scopes) };
- if (token_to_complete == 1)
- {
- auto& user_modes = get_scope(params[0], context).keymaps().user_modes();
- return { 0_byte, params[1].length(),
- complete(params[1], pos_in_token, concatenated(modes, user_modes) | gather<Vector<String>>()) };
- }
- if (unmap and token_to_complete == 2)
- {
- KeymapManager& keymaps = get_scope(params[0], context).keymaps();
- KeymapMode keymap_mode = parse_keymap_mode(params[1], keymaps.user_modes());
- KeyList keys = keymaps.get_mapped_keys(keymap_mode);
-
- return { 0_byte, params[2].length(),
- complete(params[2], pos_in_token,
- keys | transform([](Key k) { return key_to_str(k); })
- | gather<Vector<String>>()) };
- }
- return {};
- };
+ auto& user_modes = get_scope(params[0], context).keymaps().user_modes();
+ return { 0_byte, params[1].length(),
+ complete(params[1], pos_in_token, concatenated(modes, user_modes) | gather<Vector<String>>()) };
+ }
+ if (unmap and token_to_complete == 2)
+ {
+ KeymapManager& keymaps = get_scope(params[0], context).keymaps();
+ KeymapMode keymap_mode = parse_keymap_mode(params[1], keymaps.user_modes());
+ KeyList keys = keymaps.get_mapped_keys(keymap_mode);
+
+ return { 0_byte, params[2].length(),
+ complete(params[2], pos_in_token,
+ keys | transform([](Key k) { return key_to_str(k); })
+ | gather<Vector<String>>()) };
+ }
+ return {};
+}
const CommandDesc map_key_cmd = {
"map",