38 lines
1.5 KiB
Diff
38 lines
1.5 KiB
Diff
From 150fab01a9e9eb61061bf145998b608c5c9c470e Mon Sep 17 00:00:00 2001
|
|
From: lvying6 <lvying6@huawei.com>
|
|
Date: Tue, 14 Jul 2020 16:43:33 +0800
|
|
Subject: [PATCH] vim: fix garbled characters display when file name matches
|
|
warning or error in tar file
|
|
|
|
Reference: https://github.com/vim/vim/issues/6425
|
|
|
|
The problem is, the tar.vim plugin checks if the last line matches
|
|
warning or error or a few other keywords and if it does, it aborts.
|
|
|
|
Signed-off-by: lvying6 <lvying6@huawei.com>
|
|
---
|
|
runtime/autoload/tar.vim | 7 ++++++-
|
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim
|
|
index dc670db..168a2f1 100644
|
|
--- a/runtime/autoload/tar.vim
|
|
+++ b/runtime/autoload/tar.vim
|
|
@@ -184,7 +184,12 @@ fun! tar#Browse(tarfile)
|
|
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
|
return
|
|
endif
|
|
- if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
|
|
+ " If there was an error message, the last line probably matches some keywords but
|
|
+ " should also contain whitespace for readability. Make sure not to match a
|
|
+ " filename that contains the keyword (error/warning/unrecognized/inappropriate, etc)
|
|
+ if line("$") == curlast || ( line("$") == (curlast + 1) &&
|
|
+ \ getline("$") =~# '\c\<\%(warning\|error\|inappropriate\|unrecognized\)\>' &&
|
|
+ \ getline("$") =~ '\s' )
|
|
redraw!
|
|
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
|
keepj sil! %d
|
|
--
|
|
1.8.3.1
|
|
|