aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.c2
-rw-r--r--src/nvim/eval/typval.c12
-rw-r--r--src/nvim/ex_docmd.c2
3 files changed, 8 insertions, 8 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 7c3754607e..d5624f354a 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -21783,7 +21783,7 @@ void ex_oldfiles(exarg_T *eap)
nr = prompt_for_number(false);
msg_starthere();
if (nr > 0 && nr <= l->lv_len) {
- const char *const p = tv_list_find_str(l, nr);
+ const char *const p = tv_list_find_str(l, nr - 1);
if (p == NULL) {
return;
}
diff --git a/src/nvim/eval/typval.c b/src/nvim/eval/typval.c
index b0b95e955f..ef64467ee5 100644
--- a/src/nvim/eval/typval.c
+++ b/src/nvim/eval/typval.c
@@ -731,7 +731,7 @@ listitem_T *tv_list_find(list_T *const l, int n)
/// `*ret_error` is not touched.
///
/// @return Integer value at the given index or -1.
-varnumber_T tv_list_find_nr(list_T *const l, const int n, bool *ret_error)
+varnumber_T tv_list_find_nr(list_T *const l, const int n, bool *const ret_error)
FUNC_ATTR_WARN_UNUSED_RESULT
{
const listitem_T *const li = tv_list_find(l, n);
@@ -744,16 +744,16 @@ varnumber_T tv_list_find_nr(list_T *const l, const int n, bool *ret_error)
return tv_get_number_chk(&li->li_tv, ret_error);
}
-/// Get list item l[n - 1] as a string
+/// Get list item l[n] as a string
///
/// @param[in] l List to index.
/// @param[in] n Index in a list.
///
-/// @return [allocated] Copy of the list item string value.
-const char *tv_list_find_str(list_T *l, int n)
- FUNC_ATTR_MALLOC
+/// @return List item string value or NULL in case of error.
+const char *tv_list_find_str(list_T *const l, const int n)
+ FUNC_ATTR_WARN_UNUSED_RESULT
{
- const listitem_T *const li = tv_list_find(l, n - 1);
+ const listitem_T *const li = tv_list_find(l, n);
if (li == NULL) {
EMSGN(_(e_listidx), n);
return NULL;
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 73b81ac2d9..26cfec991f 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -8424,7 +8424,7 @@ eval_vars (
return NULL;
}
result = (char_u *)tv_list_find_str(get_vim_var_list(VV_OLDFILES),
- (long)i);
+ i - 1);
if (result == NULL) {
*errormsg = (char_u *)"";
return NULL;