unittests: Add tests for tv_list_find*() functions

Additional modifications:

- More `const` qualifiers in tested functions.
- `tv_list_find_str()` second argument is more in-line with other
  `tv_list_find*()` functions.
This commit is contained in:
ZyX
2016-11-04 19:33:36 +03:00
parent b3672ae2fc
commit e5edf07ec4
5 changed files with 204 additions and 8 deletions

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;