Only print extra newlines for multi-line prompts (#6179)

Corrects #6110

BSD `seq` produces a down-counting sequence when the second argument is
smaller than the first, e.g.:

    $ seq 2 1
    2
    1
    $

While GNU `seq` produces no output at all:

    $ seq 2 1
    $

To accommodate for this behavior, only run `seq` when we are sure that
the second argument is greater than or equal to the first (in this case,
the second argument `line_count` should be greater than 1).
This commit is contained in:
Greg Anders 2019-10-08 11:14:51 -06:00 committed by Fabian Homborg
parent ff18b2a09a
commit 055a332133

View File

@ -8,8 +8,13 @@ function __fish_whatis_current_token -d "Show man page entries related to the to
whatis $tok[1]
set -l line_count (count (fish_prompt))
for x in (seq 2 $line_count)
printf "\n"
# Ensure line_count is greater than one to accomodate different
# versions of the `seq` command, some of which print the sequence in
# reverse order when the second argument is smaller than the first
if test $line_count -gt 1
for x in (seq 2 $line_count)
printf "\n"
end
end
commandline -f repaint