summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-07-23 23:00:08 +0200
committerBram Moolenaar <Bram@vim.org>2019-07-23 23:00:08 +0200
commit949f1989cba8bf7653316c2b1444c26f1536bfab (patch)
tree22f1e36b509f577bae3c02ab0a22529dc378f325
parentc3328169d5566b97a6a6921067017e4369dd7cd6 (diff)
patch 8.1.1737: :args command that outputs one line gives more promptv8.1.1737
Problem: :args command that outputs one line gives more prompt. Solution: Only output line break if needed. (Daniel Hahler, closes #4715)
-rw-r--r--src/testdir/test_arglist.vim5
-rw-r--r--src/version.c17
2 files changed, 9 insertions, 13 deletions
diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim
index ad44a855e0..441373beae 100644
--- a/src/testdir/test_arglist.vim
+++ b/src/testdir/test_arglist.vim
@@ -140,10 +140,7 @@ func Test_argument()
call assert_equal(['d', 'c', 'b', 'a', 'c'], g:buffers)
- redir => result
- args
- redir END
- call assert_equal('a b [c] d', trim(result))
+ call assert_equal("\na b [c] d ", execute(':args'))
.argd
call assert_equal(['a', 'b', 'd'], argv())
diff --git a/src/version.c b/src/version.c
index 4e91567a31..96f4bce893 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1737,
+/**/
1736,
/**/
1735,
@@ -4351,6 +4353,7 @@ list_in_columns(char_u **items, int size, int current)
int i;
int ncol;
int nrow;
+ int cur_row = 1;
int item_count = 0;
int width = 0;
#ifdef FEAT_SYN_HL
@@ -4381,12 +4384,12 @@ list_in_columns(char_u **items, int size, int current)
return;
}
- /* The rightmost column doesn't need a separator.
- * Sacrifice it to fit in one more column if possible. */
+ // The rightmost column doesn't need a separator.
+ // Sacrifice it to fit in one more column if possible.
ncol = (int) (Columns + 1) / width;
nrow = item_count / ncol + (item_count % ncol ? 1 : 0);
- /* i counts columns then rows. idx counts rows then columns. */
+ // "i" counts columns then rows. idx counts rows then columns.
for (i = 0; !got_int && i < nrow * ncol; ++i)
{
int idx = (i / ncol) + (i % ncol) * nrow;
@@ -4407,8 +4410,9 @@ list_in_columns(char_u **items, int size, int current)
msg_putchar(']');
if (last_col)
{
- if (msg_col > 0)
+ if (msg_col > 0 && cur_row < nrow)
msg_putchar('\n');
+ ++cur_row;
}
else
{
@@ -4416,11 +4420,6 @@ list_in_columns(char_u **items, int size, int current)
msg_putchar(' ');
}
}
- else
- {
- if (msg_col > 0)
- msg_putchar('\n');
- }
}
}