Fix compilation with gcc-5
Gcc-5 seems to have a bug in its handling of template variable. Fixes #2267
This commit is contained in:
parent
bd9895ea86
commit
d2509e54f2
|
@ -21,7 +21,7 @@ before_install:
|
||||||
install:
|
install:
|
||||||
- if [ $TRAVIS_OS_NAME = linux ]; then
|
- if [ $TRAVIS_OS_NAME = linux ]; then
|
||||||
if [ "$CXX" = "g++" ]; then
|
if [ "$CXX" = "g++" ]; then
|
||||||
export CXX=g++-6;
|
export CXX=g++-5;
|
||||||
fi;
|
fi;
|
||||||
elif [ $TRAVIS_OS_NAME = osx ]; then
|
elif [ $TRAVIS_OS_NAME = osx ]; then
|
||||||
brew outdated gcc || brew upgrade gcc;
|
brew outdated gcc || brew upgrade gcc;
|
||||||
|
@ -35,8 +35,8 @@ addons:
|
||||||
sources:
|
sources:
|
||||||
- ubuntu-toolchain-r-test
|
- ubuntu-toolchain-r-test
|
||||||
packages:
|
packages:
|
||||||
- libstdc++-6-dev
|
- libstdc++-5-dev
|
||||||
- g++-6
|
- g++-5
|
||||||
- libncursesw5-dev
|
- libncursesw5-dev
|
||||||
coverity_scan:
|
coverity_scan:
|
||||||
project:
|
project:
|
||||||
|
|
|
@ -1498,33 +1498,32 @@ const CommandDesc declare_option_cmd = {
|
||||||
};
|
};
|
||||||
|
|
||||||
template<bool unmap>
|
template<bool unmap>
|
||||||
static auto map_key_completer =
|
static Completions map_key_completer(const Context& context, CompletionFlags flags,
|
||||||
[](const Context& context, CompletionFlags flags,
|
CommandParameters params, size_t token_to_complete,
|
||||||
CommandParameters params, size_t token_to_complete,
|
ByteCount pos_in_token)
|
||||||
ByteCount pos_in_token) -> Completions
|
{
|
||||||
|
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)
|
auto& user_modes = get_scope(params[0], context).keymaps().user_modes();
|
||||||
return { 0_byte, params[0].length(),
|
return { 0_byte, params[1].length(),
|
||||||
complete(params[0], pos_in_token, scopes) };
|
complete(params[1], pos_in_token, concatenated(modes, user_modes) | gather<Vector<String>>()) };
|
||||||
if (token_to_complete == 1)
|
}
|
||||||
{
|
if (unmap and token_to_complete == 2)
|
||||||
auto& user_modes = get_scope(params[0], context).keymaps().user_modes();
|
{
|
||||||
return { 0_byte, params[1].length(),
|
KeymapManager& keymaps = get_scope(params[0], context).keymaps();
|
||||||
complete(params[1], pos_in_token, concatenated(modes, user_modes) | gather<Vector<String>>()) };
|
KeymapMode keymap_mode = parse_keymap_mode(params[1], keymaps.user_modes());
|
||||||
}
|
KeyList keys = keymaps.get_mapped_keys(keymap_mode);
|
||||||
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(),
|
return { 0_byte, params[2].length(),
|
||||||
complete(params[2], pos_in_token,
|
complete(params[2], pos_in_token,
|
||||||
keys | transform([](Key k) { return key_to_str(k); })
|
keys | transform([](Key k) { return key_to_str(k); })
|
||||||
| gather<Vector<String>>()) };
|
| gather<Vector<String>>()) };
|
||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
};
|
}
|
||||||
|
|
||||||
const CommandDesc map_key_cmd = {
|
const CommandDesc map_key_cmd = {
|
||||||
"map",
|
"map",
|
||||||
|
|
Loading…
Reference in New Issue
Block a user