diff options
author | Josh Rahm <rahm@google.com> | 2022-08-22 15:52:40 -0600 |
---|---|---|
committer | Josh Rahm <rahm@google.com> | 2022-08-22 15:52:40 -0600 |
commit | 8fc6e69877f6c15942b4e8fc6ca471e4221d9bae (patch) | |
tree | 46111208bfc5e17b35a54e64906887ce40fa8774 /src/nvim/eval.c | |
parent | e083d3adf49ef827bd28693a29ff25b4bd2588ad (diff) | |
parent | baaaa1f2b3b6ae3a989d1362a27e55dc7b0b148a (diff) | |
download | rneovim-8fc6e69877f6c15942b4e8fc6ca471e4221d9bae.tar.gz rneovim-8fc6e69877f6c15942b4e8fc6ca471e4221d9bae.tar.bz2 rneovim-8fc6e69877f6c15942b4e8fc6ca471e4221d9bae.zip |
Merge remote-tracking branch 'upstream/master' into usermarks
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index ba78fb836b..11261b4582 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -2192,7 +2192,7 @@ int pattern_match(char *pat, char *text, bool ic) // avoid 'l' flag in 'cpoptions' char *save_cpo = p_cpo; - p_cpo = ""; + p_cpo = (char *)empty_option; regmatch.regprog = vim_regcomp(pat, RE_MAGIC + RE_STRING); if (regmatch.regprog != NULL) { regmatch.rm_ic = ic; @@ -8389,6 +8389,11 @@ char *do_string_sub(char *str, char *pat, char *sub, typval_T *expr, char *flags p_cpo = save_cpo; } else { // Darn, evaluating {sub} expression or {expr} changed the value. + // If it's still empty it was changed and restored, need to restore in + // the complicated way. + if (*p_cpo == NUL) { + set_option_value_give_err("cpo", 0L, save_cpo, 0); + } free_string_option((char_u *)save_cpo); } |