diff options
author | Bram Moolenaar <Bram@vim.org> | 2006-03-07 22:38:47 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2006-03-07 22:38:47 +0000 |
commit | 1f35bf9cab16d3f3a63c47894c69c9aa699d8145 (patch) | |
tree | 6484c3e7edc2bcc857cb509b18c5d52d4977db59 /src/eval.c | |
parent | a203182302733c0ea98d66ee1f576f251697dc81 (diff) |
updated for version 7.0217v7.0217
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/eval.c b/src/eval.c index 4336a26334..e5131f32cc 100644 --- a/src/eval.c +++ b/src/eval.c @@ -931,7 +931,7 @@ var_redir_start(name, append) else set_var_lval(redir_lval, redir_endp, &tv, TRUE, (char_u *)"="); err = did_emsg; - did_emsg += save_emsg; + did_emsg |= save_emsg; if (err) { var_redir_stop(); @@ -979,7 +979,7 @@ var_redir_str(value, len) did_emsg = FALSE; set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)"."); err = did_emsg; - did_emsg += save_emsg; + did_emsg |= save_emsg; if (err) var_redir_stop(); @@ -8961,7 +8961,7 @@ filter_map(argvars, rettv, map) int rem; int todo; char_u *msg = map ? (char_u *)"map()" : (char_u *)"filter()"; - int save_called_emsg; + int save_did_emsg; rettv->vval.v_number = 0; if (argvars[0].v_type == VAR_LIST) @@ -8991,11 +8991,10 @@ filter_map(argvars, rettv, map) prepare_vimvar(VV_VAL, &save_val); expr = skipwhite(expr); - /* We reset "called_emsg" to be able to detect whether an error - * occurred during evaluation of the expression. "did_emsg" can't be - * used, because it is reset when calling a function. */ - save_called_emsg = called_emsg; - called_emsg = FALSE; + /* We reset "did_emsg" to be able to detect whether an error + * occurred during evaluation of the expression. */ + save_did_emsg = did_emsg; + did_emsg = FALSE; if (argvars[0].v_type == VAR_DICT) { @@ -9015,7 +9014,7 @@ filter_map(argvars, rettv, map) break; vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL - || called_emsg) + || did_emsg) break; if (!map && rem) dictitem_remove(d, di); @@ -9034,7 +9033,7 @@ filter_map(argvars, rettv, map) break; nli = li->li_next; if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL - || called_emsg) + || did_emsg) break; if (!map && rem) listitem_remove(l, li); @@ -9043,7 +9042,7 @@ filter_map(argvars, rettv, map) restore_vimvar(VV_VAL, &save_val); - called_emsg |= save_called_emsg; + did_emsg |= save_did_emsg; } copy_tv(&argvars[0], rettv); @@ -17830,6 +17829,7 @@ ex_function(eap) else eap->skip = TRUE; } + /* An error in a function call during evaluation of an expression in magic * braces should not cause the function not to be defined. */ saved_did_emsg = did_emsg; |