Updated runtime files.
diff --git a/runtime/macros/less.bat b/runtime/macros/less.bat
new file mode 100644
index 0000000..bbe619b
--- /dev/null
+++ b/runtime/macros/less.bat
@@ -0,0 +1,10 @@
+@echo off
+rem batch file to start Vim with less.vim.
+rem Read stdin if no arguments were given.
+rem Written by Ken Takata.
+
+if "%1"=="" (
+  vim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" -
+) else (
+  vim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" %*
+)
diff --git a/runtime/macros/less.sh b/runtime/macros/less.sh
index 484c714..e29958f 100755
--- a/runtime/macros/less.sh
+++ b/runtime/macros/less.sh
@@ -1,16 +1,24 @@
 #!/bin/sh
 # Shell script to start Vim with less.vim.
-# Read stdin if no arguments were given.
+# Read stdin if no arguments were given and stdin was redirected.
 
 if test -t 1; then
- if test $# = 0; then
-   vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -
+  if test $# = 0; then
+    if test -t 0; then
+      echo "Missing filename" 1>&2
+      exit
+    fi
+    vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -
   else
-   vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' "$@"
+    vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' "$@"
   fi
 else
   # Output is not a terminal, cat arguments or stdin
   if test $# = 0; then
+    if test -t 0; then
+      echo "Missing filename" 1>&2
+      exit
+    fi
     cat
   else
     cat "$@"
diff --git a/runtime/macros/less.vim b/runtime/macros/less.vim
index 959a5d7..4888ed2 100644
--- a/runtime/macros/less.vim
+++ b/runtime/macros/less.vim
@@ -92,7 +92,8 @@
 fun! s:NextPage()
   if line(".") == line("$")
     if argidx() + 1 >= argc()
-      quit
+      " Don't quit at the end of the last file
+      return
     endif
     next
     1