runtime(manpager): Strip OSC 8 hyperlink sequences in manpager plugin

fixes:  #19726
closes: #19787

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Yasuhiro Matsumoto
2026-03-22 15:28:28 +00:00
committed by Christian Brabandt
parent 8e0483c2f4
commit 9774651ecf
+4
View File
@@ -1,6 +1,7 @@
" Vim plugin for using Vim as manpager.
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
" Last Change: 2024 Jul 03
" 2026 Mar 22 by Vim Project: strip OSC 9 sequences (#19787)
if exists('g:loaded_manpager_plugin')
finish
@@ -32,6 +33,9 @@ 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 empty lines above the header
call cursor(1, 1)
let n = search(".*(.*)", "c")