From d3f00f54bf955bd01767db3a0af25866bc112ec7 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 24 Dec 2021 12:02:43 +0000 Subject: [PATCH] patch 8.2.3882: more duplicated code in f_getreginfo() Problem: More duplicated code in f_getreginfo(). Solution: Also use getreg_get_regname(). (closes #9398) --- src/evalfunc.c | 24 ++++++------------------ src/version.c | 2 ++ 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/evalfunc.c b/src/evalfunc.c index 2f7e4e7e5aa07..778d16d77b096 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -4675,8 +4675,8 @@ f_getpos(typval_T *argvars, typval_T *rettv) } /* - * Common between getreg() and getregtype(): get the register name from the - * first argument. + * Common between getreg(), getreginfo() and getregtype(): get the register + * name from the first argument. * Returns zero on error. */ static int @@ -7821,7 +7821,6 @@ range_list_materialize(list_T *list) static void f_getreginfo(typval_T *argvars, typval_T *rettv) { - char_u *strregname; int regname; char_u buf[NUMBUFLEN + 2]; long reglen = 0; @@ -7831,22 +7830,11 @@ f_getreginfo(typval_T *argvars, typval_T *rettv) if (in_vim9script() && check_for_opt_string_arg(argvars, 0) == FAIL) return; - if (argvars[0].v_type != VAR_UNKNOWN) - { - strregname = tv_get_string_chk(&argvars[0]); - if (strregname == NULL) - return; - if (in_vim9script() && STRLEN(strregname) > 1) - { - semsg(_(e_register_name_must_be_one_char_str), strregname); - return; - } - } - else - strregname = get_vim_var_str(VV_REG); + regname = getreg_get_regname(argvars); + if (regname == 0) + return; - regname = (strregname == NULL ? '"' : *strregname); - if (regname == 0 || regname == '@') + if (regname == '@') regname = '"'; if (rettv_dict_alloc(rettv) == FAIL) diff --git a/src/version.c b/src/version.c index 9d6c0d9f7fbeb..a77aa046f346d 100644 --- a/src/version.c +++ b/src/version.c @@ -749,6 +749,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 3882, /**/ 3881, /**/