To: vim_dev@googlegroups.com Subject: Patch 9.0.1452 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 9.0.1452 Problem: Code using EVAL_CONSTANT is dead, it is never set. Solution: Remove EVAL_CONSTANT. (closes #12252) Files: src/eval.c, src/structs.h *** ../vim-9.0.1451/src/eval.c 2023-03-11 16:18:48.457096310 +0000 --- src/eval.c 2023-04-13 22:11:00.252632171 +0100 *************** *** 2358,2364 **** // Need to make a copy, in case evaluating the arguments makes // the name invalid. s = vim_strsave(s); ! if (s == NULL || (evaluate && (*s == NUL || (flags & EVAL_CONSTANT)))) ret = FAIL; else { --- 2358,2364 ---- // Need to make a copy, in case evaluating the arguments makes // the name invalid. s = vim_strsave(s); ! if (s == NULL || (evaluate && *s == NUL)) ret = FAIL; else { *************** *** 2647,2653 **** char_u *expr_end; int did_emsg_before = did_emsg; int called_emsg_before = called_emsg; - int flags = evalarg == NULL ? 0 : evalarg->eval_flags; int check_for_end = retarg == NULL; int end_error = FALSE; --- 2647,2652 ---- *************** *** 2692,2698 **** if (!aborting() && did_emsg == did_emsg_before && called_emsg == called_emsg_before - && (flags & EVAL_CONSTANT) == 0 && (!in_vim9script() || !vim9_bad_comment(p))) { if (end_error) --- 2691,2696 ---- *************** *** 2807,2813 **** } *arg = skipwhite_and_linebreak(*arg + 1, evalarg_used); evalarg_used->eval_flags = (op_falsy ? !result : result) ! ? orig_flags : orig_flags & ~EVAL_EVALUATE; if (eval1(arg, &var2, evalarg_used) == FAIL) { evalarg_used->eval_flags = orig_flags; --- 2805,2811 ---- } *arg = skipwhite_and_linebreak(*arg + 1, evalarg_used); evalarg_used->eval_flags = (op_falsy ? !result : result) ! ? orig_flags : (orig_flags & ~EVAL_EVALUATE); if (eval1(arg, &var2, evalarg_used) == FAIL) { evalarg_used->eval_flags = orig_flags; *************** *** 2856,2862 **** } *arg = skipwhite_and_linebreak(*arg + 1, evalarg_used); evalarg_used->eval_flags = !result ? orig_flags ! : orig_flags & ~EVAL_EVALUATE; if (eval1(arg, &var2, evalarg_used) == FAIL) { if (evaluate && result) --- 2854,2860 ---- } *arg = skipwhite_and_linebreak(*arg + 1, evalarg_used); evalarg_used->eval_flags = !result ? orig_flags ! : (orig_flags & ~EVAL_EVALUATE); if (eval1(arg, &var2, evalarg_used) == FAIL) { if (evaluate && result) *************** *** 2960,2966 **** } *arg = skipwhite_and_linebreak(*arg + 2, evalarg_used); evalarg_used->eval_flags = !result ? orig_flags ! : orig_flags & ~EVAL_EVALUATE; if (eval3(arg, &var2, evalarg_used) == FAIL) return FAIL; --- 2958,2964 ---- } *arg = skipwhite_and_linebreak(*arg + 2, evalarg_used); evalarg_used->eval_flags = !result ? orig_flags ! : (orig_flags & ~EVAL_EVALUATE); if (eval3(arg, &var2, evalarg_used) == FAIL) return FAIL; *************** *** 3086,3092 **** } *arg = skipwhite_and_linebreak(*arg + 2, evalarg_used); evalarg_used->eval_flags = result ? orig_flags ! : orig_flags & ~EVAL_EVALUATE; CLEAR_FIELD(var2); if (eval4(arg, &var2, evalarg_used) == FAIL) return FAIL; --- 3084,3090 ---- } *arg = skipwhite_and_linebreak(*arg + 2, evalarg_used); evalarg_used->eval_flags = result ? orig_flags ! : (orig_flags & ~EVAL_EVALUATE); CLEAR_FIELD(var2); if (eval4(arg, &var2, evalarg_used) == FAIL) return FAIL; *************** *** 4279,4286 **** *arg = skipwhite(*arg); ret = eval_func(arg, evalarg, s, len, rettv, flags, NULL); } - else if (flags & EVAL_CONSTANT) - ret = FAIL; else if (evaluate) { // get the value of "true", "false", etc. or a variable --- 4277,4282 ---- *** ../vim-9.0.1451/src/structs.h 2023-04-09 22:01:21.143306278 +0100 --- src/structs.h 2023-04-13 22:09:01.836480799 +0100 *************** *** 2102,2110 **** char_u *eval_tofree_lambda; } evalarg_T; ! // Flags for expression evaluation. #define EVAL_EVALUATE 1 // when missing don't actually evaluate - #define EVAL_CONSTANT 2 // when not a constant return FAIL # ifdef FEAT_PROFILE /* --- 2102,2109 ---- char_u *eval_tofree_lambda; } evalarg_T; ! // Flag for expression evaluation. #define EVAL_EVALUATE 1 // when missing don't actually evaluate # ifdef FEAT_PROFILE /* *** ../vim-9.0.1451/src/version.c 2023-04-13 21:47:33.361227019 +0100 --- src/version.c 2023-04-13 22:12:29.284707708 +0100 *************** *** 697,698 **** --- 697,700 ---- { /* Add new patch number below this line */ + /**/ + 1452, /**/ -- I wonder, do vegetarians eat fruit bats? /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///