patch 9.1.1342: Shebang filetype detection can be improved

Commit: 
https://github.com/vim/vim/commit/f102f4c2e80f5493a02a7b1130f11615d60b6295
Author: Eisuke Kawashima <e-k...@users.noreply.github.com>
Date:   Thu Apr 24 22:03:21 2025 +0200

    patch 9.1.1342: Shebang filetype detection can be improved
    
    Problem:  Shebang filetype detection can be improved
    Solution: Improve detection logic (Eisuke Kawashima)
    
    Vim does not correctly detect filetype from
      - `#!/usr/bin/env --split-string=awk -f`
      - `#!/usr/bin/env -S -i awk -f`
      - `#!/usr/bin/env -S VAR= awk -f`
    So update the current detection logic to detect those cases.
    
    closes: #17199
    
    Signed-off-by: Eisuke Kawashima <e-k...@users.noreply.github.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/autoload/dist/script.vim b/runtime/autoload/dist/script.vim
index 859126f0f..c184bd032 100644
--- a/runtime/autoload/dist/script.vim
+++ b/runtime/autoload/dist/script.vim
@@ -4,7 +4,7 @@ vim9script
 # Invoked from "scripts.vim" in 'runtimepath'
 #
 # Maintainer:  The Vim Project <https://github.com/vim/vim>
-# Last Change: 2025 Jan 20
+# Last Change: 2025 Apr 24
 # Former Maintainer:   Bram Moolenaar <b...@vim.org>
 
 export def DetectFiletype()
@@ -26,8 +26,9 @@ def DetectFromHashBang(firstline: string)
   # "#!/usr/bin/bash" to make matching easier.
   # Recognize only a few {options} that are commonly used.
   if line1 =~ '^#!\s*\S*\<env\s'
-    line1 = substitute(line1, '\S\+=\S\+', '', 'g')
-    line1 = substitute(line1, 
'\(-[iS]\|--ignore-environment\|--split-string\)', '', '')
+    line1 = substitute(line1, '\s\zs--split-string[    =]', '', '')
+    line1 = substitute(line1, '\s\zs[A-Za-z0-9_]\+=\S*\ze\s', '', 'g')
+    line1 = substitute(line1, '\s\zs\%(-[iS]\+\|--ignore-environment\)\ze\s', 
'', 'g')
     line1 = substitute(line1, '\<env\s\+', '', '')
   endif
 
diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim
index a7bb8bf7d..dc653f5b4 100644
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -1073,10 +1073,10 @@ def s:GetScriptEnvChecks(): dict<list<list<string>>>
   return {
     perl: [['#!/usr/bin/env VAR=val perl']],
     scala: [['#!/usr/bin/env VAR=val VVAR=vval scala']],
-    awk: [['#!/usr/bin/env VAR=val -i awk']],
+    awk: [['#!/usr/bin/env --split-string=VAR= awk -vFS="," -f']],
     execline: [['#!/usr/bin/env execlineb']],
     scheme: [['#!/usr/bin/env VAR=val --ignore-environment scheme']],
-    python: [['#!/usr/bin/env VAR=val -S python -w -T']],
+    python: [['#!/usr/bin/env -S -i VAR=val python -B -u']],
     wml: [['#!/usr/bin/env VAR=val --split-string wml']],
     nix: [['#!/usr/bin/env nix-shell']],
   }
diff --git a/src/version.c b/src/version.c
index 8d881242f..a07561eb6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1342,
 /**/
     1341,
 /**/

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1u82yO-005f0T-0Q%40256bit.org.

Raspunde prin e-mail lui