diff options
| author | Maxime Coste <mawww@kakoune.org> | 2018-07-30 07:15:17 +0100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2018-07-30 07:15:17 +0100 |
| commit | d2509e54f2d4953e12ecb0d1acca3a6761b1abf5 (patch) | |
| tree | 7858415b15d3c38b89d54e628b7480faf87739ae /src | |
| parent | bd9895ea86c9151b2df5900ac79e26a1772fad65 (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.cc | 51 |
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", |
