diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-04-04 22:57:29 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-04-04 22:57:29 +0200 |
commit | 333b80acf3a44e462456e6d5730e47ffa449c83d (patch) | |
tree | 24070cc76ef5b978aabc38db366e04e0dbed591d /src/ex_docmd.c | |
parent | 1f8495cf48888ff3a8ab3d0eb22db92389191a60 (diff) | |
download | vim-git-333b80acf3a44e462456e6d5730e47ffa449c83d.tar.gz |
patch 8.0.1660: the terminal API "drop" command doesn't support optionsv8.0.1660
Problem: The terminal API "drop" command doesn't support options.
Solution: Implement the options.
Diffstat (limited to 'src/ex_docmd.c')
-rw-r--r-- | src/ex_docmd.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 3a6c7cfb1..b0130046e 100644 --- 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 |