(I posted this to gnu.bash.bug on 2012-08-30 with message id
k1nbtu$6g3$1...@orkan.itea.ntnu.no, but it never appeared)
Hello!
I have got tired of an old bug with print-completions-horizontally.
When that variable is set, and one of the matches is longer than half
of the terminal width, all the matches are printed on a single line
separated by a lot of spaces. Also, in that case, the internal pager
doesn't work.
I have seen this bug consistently on all platforms and terminals since
bash version 2.something.
The following patch to bash 4.2 seems to fix this:
diff -aNru bash-4.2_a/lib/readline/complete.c bash-4.2_b/lib/readline/complete.c
--- bash-4.2_a/lib/readline/complete.c 2011-01-16 21:32:57.000000000 +0100
+++ bash-4.2_b/lib/readline/complete.c 2012-08-29 16:21:19.000000000 +0200
@@ -1463,7 +1463,7 @@
/* Have we reached the end of this line? */
if (matches[i+1])
{
- if (i && (limit > 1) && (i % limit) == 0)
+ if (i % limit == 0)
{
rl_crlf ();
lines++;
With best regards from
David Kaasen.