summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEisuke Kawashima <e-kwsm@users.noreply.github.com>2022-11-24 10:58:10 +0000
committerBram Moolenaar <Bram@vim.org>2022-11-24 10:58:10 +0000
commit24482fbfd599d2273c48951df7d00d62f3e66c85 (patch)
tree7867cb0859f5758b3a3d8e9635bd210f93a97144
parent24fe33a83a5130a5369f06d88000a3a0590a59ec (diff)
downloadvim-git-24482fbfd599d2273c48951df7d00d62f3e66c85.tar.gz
patch 9.0.0935: when using dash it may not be recognize as filetype "sh"v9.0.0935
Problem: When using dash it may not be recognize as filetype "sh". Solution: Add checks for "dash". (Eisuke Kawashima,closes #11600)
-rw-r--r--runtime/autoload/dist/ft.vim3
-rw-r--r--runtime/autoload/dist/script.vim4
-rw-r--r--src/testdir/test_filetype.vim7
-rw-r--r--src/version.c2
4 files changed, 13 insertions, 3 deletions
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim
index 8f744457c..c40e0c84d 100644
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -712,7 +712,8 @@ export def SetFileTypeSH(name: string)
if exists("b:is_sh")
unlet b:is_sh
endif
- elseif name =~ '\<sh\>'
+ elseif name =~ '\<sh\>' || name =~ '\<dash\>'
+ # Ubuntu links "sh" to "dash", thus it is expected to work the same way
b:is_sh = 1
if exists("b:is_kornshell")
unlet b:is_kornshell
diff --git a/runtime/autoload/dist/script.vim b/runtime/autoload/dist/script.vim
index 9e4196977..8c5441cc8 100644
--- a/runtime/autoload/dist/script.vim
+++ b/runtime/autoload/dist/script.vim
@@ -53,8 +53,8 @@ def DetectFromHashBang(firstline: string)
name = 'wish'
endif
- # Bourne-like shell scripts: bash bash2 ksh ksh93 sh
- if name =~ '^\(bash\d*\|\|ksh\d*\|sh\)\>'
+ # Bourne-like shell scripts: bash bash2 dash ksh ksh93 sh
+ if name =~ '^\(bash\d*\|dash\|ksh\d*\|sh\)\>'
call dist#ft#SetFileTypeSH(line1)
# csh scripts
diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim
index c7c494aaa..765ee8920 100644
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -704,6 +704,13 @@ let s:script_checks = {
\ ['__libc_start_main and something']],
\ 'clojure': [['#!/path/clojure']],
\ 'scala': [['#!/path/scala']],
+ \ 'sh': [['#!/path/sh'],
+ \ ['#!/path/bash'],
+ \ ['#!/path/bash2'],
+ \ ['#!/path/dash'],
+ \ ['#!/path/ksh'],
+ \ ['#!/path/ksh93']],
+ \ 'csh': [['#!/path/csh']],
\ 'tcsh': [['#!/path/tcsh']],
\ 'zsh': [['#!/path/zsh']],
\ 'tcl': [['#!/path/tclsh'],
diff --git a/src/version.c b/src/version.c
index 55f363fb1..42a7e46b6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 935,
+/**/
934,
/**/
933,