Mercurial > vim
diff src/term.c @ 19178:f7081bd2680e v8.2.0148
patch 8.2.0148: mapping related function in wrong source file
Commit: https://github.com/vim/vim/commit/7f51bbe0d19f1f0cb0321326f45a17b4f5155f89
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jan 24 20:21:19 2020 +0100
patch 8.2.0148: mapping related function in wrong source file
Problem: Mapping related function in wrong source file.
Solution: Move the function. Add a few more test cases. (Yegappan
Lakshmanan, closes #5528)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 24 Jan 2020 20:30:04 +0100 |
parents | 847cc7932c42 |
children | 2ef19eed524a |
line wrap: on
line diff
--- a/src/term.c +++ b/src/term.c @@ -5936,81 +5936,6 @@ check_for_codes_from_term(void) } #endif -/* - * Translate an internal mapping/abbreviation representation into the - * corresponding external one recognized by :map/:abbrev commands. - * Respects the current B/k/< settings of 'cpoption'. - * - * This function is called when expanding mappings/abbreviations on the - * command-line. - * - * It uses a growarray to build the translation string since the latter can be - * wider than the original description. The caller has to free the string - * afterwards. - * - * Returns NULL when there is a problem. - */ - char_u * -translate_mapping(char_u *str) -{ - garray_T ga; - int c; - int modifiers; - int cpo_bslash; - int cpo_special; - - ga_init(&ga); - ga.ga_itemsize = 1; - ga.ga_growsize = 40; - - cpo_bslash = (vim_strchr(p_cpo, CPO_BSLASH) != NULL); - cpo_special = (vim_strchr(p_cpo, CPO_SPECI) != NULL); - - for (; *str; ++str) - { - c = *str; - if (c == K_SPECIAL && str[1] != NUL && str[2] != NUL) - { - modifiers = 0; - if (str[1] == KS_MODIFIER) - { - str++; - modifiers = *++str; - c = *++str; - } - if (c == K_SPECIAL && str[1] != NUL && str[2] != NUL) - { - if (cpo_special) - { - ga_clear(&ga); - return NULL; - } - c = TO_SPECIAL(str[1], str[2]); - if (c == K_ZERO) // display <Nul> as ^@ - c = NUL; - str += 2; - } - if (IS_SPECIAL(c) || modifiers) // special key - { - if (cpo_special) - { - ga_clear(&ga); - return NULL; - } - ga_concat(&ga, get_special_key_name(c, modifiers)); - continue; // for (str) - } - } - if (c == ' ' || c == '\t' || c == Ctrl_J || c == Ctrl_V - || (c == '<' && !cpo_special) || (c == '\\' && !cpo_bslash)) - ga_append(&ga, cpo_bslash ? Ctrl_V : '\\'); - if (c) - ga_append(&ga, c); - } - ga_append(&ga, NUL); - return (char_u *)(ga.ga_data); -} - #if (defined(MSWIN) && (!defined(FEAT_GUI) || defined(VIMDLL))) || defined(PROTO) static char ksme_str[20]; static char ksmr_str[20];