patch 8.0.0832: terminal function arguments are not consistent
Problem: Terminal function arguments are not consistent.
Solution: Use one-based instead of zero-based rows and cols. Use "." for
the current row.
diff --git a/src/terminal.c b/src/terminal.c
index 1f23587..9dc2d32 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -36,8 +36,6 @@
* that buffer, attributes come from the scrollback buffer tl_scrollback.
*
* TODO:
- * - Use "." for current line instead of optional argument.
- * - make row and cols one-based instead of zero-based in term_ functions.
* - Add StatusLineTerm highlighting
* - in bash mouse clicks are inserting characters.
* - mouse scroll: when over other window, scroll that window.
@@ -1773,8 +1771,8 @@
return;
l = rettv->vval.v_list;
- list_append_number(l, buf->b_term->tl_cursor_pos.row);
- list_append_number(l, buf->b_term->tl_cursor_pos.col);
+ list_append_number(l, buf->b_term->tl_cursor_pos.row + 1);
+ list_append_number(l, buf->b_term->tl_cursor_pos.col + 1);
list_append_number(l, buf->b_term->tl_cursor_visible);
}
@@ -1796,6 +1794,16 @@
++rettv->vval.v_job->jv_refcount;
}
+ static int
+get_row_number(typval_T *tv, term_T *term)
+{
+ if (tv->v_type == VAR_STRING
+ && tv->vval.v_string != NULL
+ && STRCMP(tv->vval.v_string, ".") == 0)
+ return term->tl_cursor_pos.row;
+ return (int)get_tv_number(tv) - 1;
+}
+
/*
* "term_getline(buf, row)" function
*/
@@ -1810,10 +1818,7 @@
if (buf == NULL)
return;
term = buf->b_term;
- if (argvars[1].v_type == VAR_UNKNOWN)
- row = term->tl_cursor_pos.row;
- else
- row = (int)get_tv_number(&argvars[1]);
+ row = get_row_number(&argvars[1], term);
if (term->tl_vterm == NULL)
{
@@ -1944,10 +1949,7 @@
screen = vterm_obtain_screen(term->tl_vterm);
l = rettv->vval.v_list;
- if (argvars[1].v_type == VAR_UNKNOWN)
- pos.row = term->tl_cursor_pos.row;
- else
- pos.row = (int)get_tv_number(&argvars[1]);
+ pos.row = get_row_number(&argvars[1], term);
for (pos.col = 0; pos.col < term->tl_cols; )
{
dict_T *dcell;
diff --git a/src/version.c b/src/version.c
index 71ee6d2..67862d0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 832,
+/**/
831,
/**/
830,