fish-shell/share/functions/__fish_whatis_current_token.fish
Greg Anders 055a332133 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).
2019-10-08 19:14:51 +02:00

23 lines
769 B
Fish

# This function is typically bound to Alt-W, it is used to list man page entries
# for the command under the cursor.
function __fish_whatis_current_token -d "Show man page entries related to the token under the cursor"
set -l tok (commandline -pt)
if test -n "$tok[1]"
printf "\n"
whatis $tok[1]
set -l line_count (count (fish_prompt))
# 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
end
end