To: vim_dev@googlegroups.com Subject: Patch 8.1.1737 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.1737 Problem: :args command that outputs one line gives more prompt. Solution: Only output line break if needed. (Daniel Hahler, closes #4715) Files: src/version.c, src/testdir/test_arglist.vim *** ../vim-8.1.1736/src/version.c 2019-07-23 22:15:21.311518857 +0200 --- src/version.c 2019-07-23 22:55:05.615818414 +0200 *************** *** 4351,4356 **** --- 4353,4359 ---- int i; int ncol; int nrow; + int cur_row = 1; int item_count = 0; int width = 0; #ifdef FEAT_SYN_HL *************** *** 4381,4392 **** return; } ! /* 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. */ for (i = 0; !got_int && i < nrow * ncol; ++i) { int idx = (i / ncol) + (i % ncol) * nrow; --- 4384,4395 ---- return; } ! // 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. for (i = 0; !got_int && i < nrow * ncol; ++i) { int idx = (i / ncol) + (i % ncol) * nrow; *************** *** 4407,4414 **** msg_putchar(']'); if (last_col) { ! if (msg_col > 0) msg_putchar('\n'); } else { --- 4410,4418 ---- msg_putchar(']'); if (last_col) { ! if (msg_col > 0 && cur_row < nrow) msg_putchar('\n'); + ++cur_row; } else { *************** *** 4416,4426 **** msg_putchar(' '); } } - else - { - if (msg_col > 0) - msg_putchar('\n'); - } } } --- 4420,4425 ---- *** ../vim-8.1.1736/src/testdir/test_arglist.vim 2018-12-28 19:29:31.743633958 +0100 --- src/testdir/test_arglist.vim 2019-07-23 22:52:04.144231816 +0200 *************** *** 140,149 **** call assert_equal(['d', 'c', 'b', 'a', 'c'], g:buffers) ! redir => result ! args ! redir END ! call assert_equal('a b [c] d', trim(result)) .argd call assert_equal(['a', 'b', 'd'], argv()) --- 140,146 ---- call assert_equal(['d', 'c', 'b', 'a', 'c'], g:buffers) ! call assert_equal("\na b [c] d ", execute(':args')) .argd call assert_equal(['a', 'b', 'd'], argv()) *** ../vim-8.1.1736/src/version.c 2019-07-23 22:15:21.311518857 +0200 --- src/version.c 2019-07-23 22:55:05.615818414 +0200 *************** *** 779,780 **** --- 779,782 ---- { /* Add new patch number below this line */ + /**/ + 1737, /**/ -- Clothes make the man. Naked people have little or no influence on society. -- Mark Twain (Samuel Clemens) (1835-1910) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///