Mercurial > vim
changeset 20103:fda7bed83eb6 v8.2.0607
patch 8.2.0607: gcc warns for using uninitialized variable
Commit: https://github.com/vim/vim/commit/2bb76accc66d17f2c027c04396082c46f410bfea
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Apr 19 22:57:44 2020 +0200
patch 8.2.0607: gcc warns for using uninitialized variable
Problem: Gcc warns for using uninitialized variable. (John Marriott)
Solution: Set name_end also for environment variables.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 19 Apr 2020 23:00:03 +0200 |
parents | c7b95b2427fb |
children | b832a572e1c8 |
files | src/evalvars.c src/version.c |
diffstat | 2 files changed, 25 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/src/evalvars.c +++ b/src/evalvars.c @@ -1428,35 +1428,36 @@ ex_unletlock( if (!error && !eap->skip && callback(&lv, arg, eap, deep, cookie) == FAIL) error = TRUE; - arg = skipwhite(arg); - continue; + name_end = arg; } - - // Parse the name and find the end. - name_end = get_lval(arg, NULL, &lv, TRUE, eap->skip || error, + else + { + // Parse the name and find the end. + name_end = get_lval(arg, NULL, &lv, TRUE, eap->skip || error, glv_flags, FNE_CHECK_START); - if (lv.ll_name == NULL) - error = TRUE; // error but continue parsing - if (name_end == NULL || (!VIM_ISWHITE(*name_end) - && !ends_excmd(*name_end))) - { - if (name_end != NULL) + if (lv.ll_name == NULL) + error = TRUE; // error but continue parsing + if (name_end == NULL || (!VIM_ISWHITE(*name_end) + && !ends_excmd(*name_end))) { - emsg_severe = TRUE; - emsg(_(e_trailing)); + if (name_end != NULL) + { + emsg_severe = TRUE; + emsg(_(e_trailing)); + } + if (!(eap->skip || error)) + clear_lval(&lv); + break; } - if (!(eap->skip || error)) + + if (!error && !eap->skip + && callback(&lv, name_end, eap, deep, cookie) == FAIL) + error = TRUE; + + if (!eap->skip) clear_lval(&lv); - break; } - if (!error && !eap->skip - && callback(&lv, name_end, eap, deep, cookie) == FAIL) - error = TRUE; - - if (!eap->skip) - clear_lval(&lv); - arg = skipwhite(name_end); } while (!ends_excmd2(name_end, arg));