]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(tcsh): Update ftplugin (#13327)
authordkearns <dougkearns@gmail.com>
Sat, 14 Oct 2023 09:27:27 +0000 (20:27 +1100)
committerGitHub <noreply@github.com>
Sat, 14 Oct 2023 09:27:27 +0000 (11:27 +0200)
Fix b:browsefilter deletion error when calling b:undo_ftplugin.

Fixes #13167

Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/ftplugin/csh.vim
runtime/ftplugin/tcsh.vim

index ca5da5a8b924054279b85b702b1bc9235d019fce..2feec57bb2571a0222bf0a70c83459d1b67ddf61 100644 (file)
@@ -3,9 +3,11 @@
 " Maintainer:          Doug Kearns <dougkearns@gmail.com>
 " Previous Maintainer: Dan Sharp
 " Contributor:         Johannes Zellner <johannes@zellner.org>
-" Last Change:         2021 Oct 15
+" Last Change:         2023 Oct 09
 
-if exists("b:did_ftplugin") | finish | endif
+if exists("b:did_ftplugin")
+  finish
+endif
 let b:did_ftplugin = 1
 
 let s:save_cpo = &cpo
@@ -18,7 +20,7 @@ setlocal formatoptions+=crql
 
 let b:undo_ftplugin = "setlocal com< cms< fo<"
 
-" Csh:  thanks to Johannes Zellner
+" Csh: thanks to Johannes Zellner
 " - Both foreach and end must appear alone on separate lines.
 " - The words else and endif must appear at the beginning of input lines;
 "   the if must appear alone on its input line or after an else.
@@ -38,13 +40,14 @@ if exists("loaded_matchit") && !exists("b:match_words")
        \   s:line_start .. 'case\s\+:' .. s:line_start .. 'default\>:\<breaksw\>:' ..
        \   s:line_start .. 'endsw\>'
   unlet s:line_start
-  let b:undo_ftplugin ..= " | unlet b:match_words"
+  let b:undo_ftplugin ..= " | unlet! b:match_words"
 endif
 
 if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
-  let  b:browsefilter="csh Scripts (*.csh)\t*.csh\n" ..
-       \             "All Files (*.*)\t*.*\n"
-  let b:undo_ftplugin ..= " | unlet b:browsefilter"
+  let b:browsefilter = "csh Scripts (*.csh)\t*.csh\n" ..
+       \              "All Files (*.*)\t*.*\n"
+  let b:csh_set_browsefilter = 1
+  let b:undo_ftplugin ..= " | unlet! b:browsefilter b:csh_set_browsefilter"
 endif
 
 let &cpo = s:save_cpo
index 85d3873b335441e43e0326d122ba550ffd0606c3..b2467b43a2a7ee9e05a81213dd170b3b616211c3 100644 (file)
@@ -2,9 +2,11 @@
 " Language:            tcsh
 " Maintainer:          Doug Kearns <dougkearns@gmail.com>
 " Previous Maintainer: Dan Sharp
-" Last Change:         2021 Oct 15
+" Last Change:         2023 Oct 09
 
-if exists("b:did_ftplugin") | finish | endif
+if exists("b:did_ftplugin")
+  finish
+endif
 
 let s:save_cpo = &cpo
 set cpo-=C
@@ -12,24 +14,26 @@ set cpo-=C
 " Define some defaults in case the included ftplugins don't set them.
 let s:undo_ftplugin = ""
 let s:browsefilter = "csh Files (*.csh)\t*.csh\n" ..
-           \        "All Files (*.*)\t*.*\n"
+      \                     "All Files (*.*)\t*.*\n"
 
 runtime! ftplugin/csh.vim ftplugin/csh_*.vim ftplugin/csh/*.vim
 let b:did_ftplugin = 1
 
 " Override our defaults if these were set by an included ftplugin.
 if exists("b:undo_ftplugin")
-    let s:undo_ftplugin = b:undo_ftplugin
+  let s:undo_ftplugin = b:undo_ftplugin
 endif
 if exists("b:browsefilter")
-    let s:browsefilter = b:browsefilter
+  let s:browsefilter = b:browsefilter
 endif
 
-if (has("gui_win32") || has("gui_gtk"))
-    let  b:browsefilter="tcsh Scripts (*.tcsh)\t*.tcsh\n" .. s:browsefilter
+if (has("gui_win32") || has("gui_gtk")) &&
+      \ (!exists("b:browsefilter") || exists("b:csh_set_browsefilter"))
+  let b:browsefilter = "tcsh Scripts (*.tcsh)\t*.tcsh\n" .. s:browsefilter
+  let s:undo_ftplugin = "unlet! b:browsefilter | " .. s:undo_ftplugin
 endif
 
-let b:undo_ftplugin = "unlet! b:browsefilter | " .. s:undo_ftplugin
+let b:undo_ftplugin = s:undo_ftplugin
 
 let &cpo = s:save_cpo
 unlet s:save_cpo