diff options
author | Bram Moolenaar <Bram@vim.org> | 2005-12-13 20:02:15 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2005-12-13 20:02:15 +0000 |
commit | b0bf8580c38d51a44ffe973fef946e538df16dac (patch) | |
tree | 68bec782de16be0d760320d972717328cfe16844 /src/ex_docmd.c | |
parent | 900b4d77f00b3ab7503d5e2865eca61ce5005c69 (diff) |
updated for version 7.0169
Diffstat (limited to 'src/ex_docmd.c')
-rw-r--r-- | src/ex_docmd.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 6977904b2a..d8aa8e52f7 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -4549,6 +4549,11 @@ getargopt(eap) arg += 8; pp = &eap->force_enc; } + else if (STRNCMP(arg, "bad", 3) == 0) + { + arg += 3; + pp = &eap->bad_char; + } #endif if (pp == NULL || *arg != '=') @@ -4568,12 +4573,26 @@ getargopt(eap) return FAIL; #ifdef FEAT_MBYTE } - else + else if (pp == &eap->force_enc) { /* Make 'fileencoding' lower case. */ for (p = eap->cmd + eap->force_enc; *p != NUL; ++p) *p = TOLOWER_ASC(*p); } + else + { + /* Check ++bad= argument. Must be a single-byte character, "keep" or + * "drop". */ + p = eap->cmd + eap->bad_char; + 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 + return FAIL; + } #endif return OK; |