]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(manpager): use \x07 instead of \a for BEL in OSC 8 regex
authorYasuhiro Matsumoto <mattn.jp@gmail.com>
Tue, 24 Mar 2026 19:45:04 +0000 (19:45 +0000)
committerChristian Brabandt <cb@256bit.org>
Tue, 24 Mar 2026 19:48:44 +0000 (19:48 +0000)
\a in Vim's regex matches [A-Za-z], not the BEL character (0x07).
This caused the OSC 8 hyperlink stripping pattern to incorrectly
match alphabetic characters, breaking man page display.

Use \x07 (inside []) and %x07 (outside []) to correctly match BEL.

closes: #19806

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/plugin/manpager.vim

index e0d2697439b733f40e3487dc03b5208945764fee..e3a8ea55a9a28b958b326c5dc8c16c9f3de6e32c 100644 (file)
@@ -2,6 +2,7 @@
 " Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
 " Last Change: 2024 Jul 03
 " 2026 Mar 22 by Vim Project: strip OSC 9 sequences (#19787)
+" 2026 Mar 24 by Vim Project: strip Bell char: Ctrl-G (#19807)
 
 if exists('g:loaded_manpager_plugin')
   finish
@@ -33,8 +34,8 @@ function s:ManPager()
   " Remove ansi sequences
   exe 'silent! keepj keepp %s/\v\e\[%(%(\d;)?\d{1,2})?[mK]//e' .. (&gdefault ? '' : 'g')
 
-  " Remove OSC 8 hyperlink sequences: \e]8;;...\e\ or \e]8;;...\a
-  exe 'silent! keepj keepp %s/\v\e\]8;[^\a\e]*%(\a|\e\\)//e' .. (&gdefault ? '' : 'g')
+  " Remove OSC 8 hyperlink sequences: \e]8;;...\e\ or \e]8;;...<BEL>
+  exe 'silent! keepj keepp %s/\v\e\]8;[^\x07\e]*%(%x07|\e\\)//e' .. (&gdefault ? '' : 'g')
 
   " Remove empty lines above the header
   call cursor(1, 1)