Mercurial > vim
diff src/ex_docmd.c @ 13575:4df23d9bad47 v8.0.1660
patch 8.0.1660: the terminal API "drop" command doesn't support options
commit https://github.com/vim/vim/commit/333b80acf3a44e462456e6d5730e47ffa449c83d
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Apr 4 22:57:29 2018 +0200
patch 8.0.1660: the terminal API "drop" command doesn't support options
Problem: The terminal API "drop" command doesn't support options.
Solution: Implement the options.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 04 Apr 2018 23:00:07 +0200 |
parents | 04019fc3de93 |
children | 82390bf72374 |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -5308,6 +5308,18 @@ skip_cmd_arg( return p; } + int +get_bad_opt(char_u *p, exarg_T *eap) +{ + if (STRICMP(p, "keep") == 0) + eap->bad_char = BAD_KEEP; + else if (STRICMP(p, "drop") == 0) + eap->bad_char = BAD_DROP; + else if (MB_BYTE2LEN(*p) == 1 && p[1] == NUL) + eap->bad_char = *p; + return FAIL; +} + /* * Get "++opt=arg" argument. * Return FAIL or OK. @@ -5387,6 +5399,7 @@ getargopt(exarg_T *eap) #endif if (check_ff_value(eap->cmd + eap->force_ff) == FAIL) return FAIL; + eap->force_ff = eap->cmd[eap->force_ff]; #ifdef FEAT_MBYTE } else if (pp == &eap->force_enc) @@ -5399,14 +5412,7 @@ getargopt(exarg_T *eap) { /* Check ++bad= argument. Must be a single-byte character, "keep" or * "drop". */ - p = eap->cmd + bad_char_idx; - if (STRICMP(p, "keep") == 0) - eap->bad_char = BAD_KEEP; - else if (STRICMP(p, "drop") == 0) - eap->bad_char = BAD_DROP; - else if (MB_BYTE2LEN(*p) == 1 && p[1] == NUL) - eap->bad_char = *p; - else + if (get_bad_opt(eap->cmd + bad_char_idx, eap) == FAIL) return FAIL; } #endif