]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(less.sh): Fix reading from stdin.
authorShane Harper <shane@shaneharper.net>
Wed, 18 Feb 2026 22:28:21 +0000 (22:28 +0000)
committerChristian Brabandt <cb@256bit.org>
Wed, 18 Feb 2026 22:28:21 +0000 (22:28 +0000)
Problem:  less.sh can't read from stdin; it will try to read from a file named "-" instead (after 515da6ecdb).
Solution: Do not prepend "-" with "--" in the arguments list for vim.

The following were checked manually and worked as expected:
    echo Test | less.sh
    echo Test | less.sh -
    less.sh some_file
    less.sh --cmd some_file  # vim will try to load "--cmd" and "some_file".
    less.sh                  # script outputs "No input."
    # All of the above repeated with the output piped to 'cat'.

closes: #19462

Signed-off-by: Shane Harper <shane@shaneharper.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/macros/less.sh

index ba980397958a9c29a0c8664e749590b1d4856ba0..32b5918918112e58097e656c057bf18720fd0ec2 100755 (executable)
@@ -9,7 +9,8 @@ fi
 
 if [ -t 1 ]; then
   [ $# -eq 0 ] && set -- "-"
-  exec vim --cmd 'let no_plugin_maps=1' -c 'runtime! macros/less.vim' --not-a-term -- "$@"
+  [ "$*" != "-" ] && set -- -- "$@"
+  exec vim --cmd 'let no_plugin_maps=1' -c 'runtime! macros/less.vim' --not-a-term "$@"
 else  # Output is not a terminal.
   exec cat -- "$@"
 fi