Projects
Mega:23.09
vim
_service:tar_scm:backport-patch-improve-the-err...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:backport-patch-improve-the-error-detection.patch of Package vim
From 3d37231437fc0f761664a7cabc8f7b927b468767 Mon Sep 17 00:00:00 2001 From: Christian Brabandt <cb@256bit.org> Date: Sun, 5 Nov 2023 17:44:05 +0100 Subject: [PATCH] runtime(tar): improve the error detection Do not rely on the fact, that the last line matches warning, error, inappropriate or unrecognized to determine if an error occurred. It could also be a file, contains such a keyword. So make the error detection slightly more strict and only assume an error occured, if in addition to those 4 keywords, also a space matches (this assumes the error message contains a space), which luckily on Unix not many files match by default. The whole if condition seems however slightly dubious. In case an error happened, this would probably already be caught in the previous if statement, since this checks for the return code of the tar program. There may however be tar implementations, that do not set the exit code for some kind of error (but print an error message)? But let's keep this check for now, not many people have noticed this behaviour until now, so it seems to work reasonably well anyhow. related: #6425 fixes: #13489 Signed-off-by: Christian Brabandt <cb@256bit.org> --- runtime/autoload/tar.vim | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim index e495e8262a93f..52369a42c1c1b 100644 --- a/runtime/autoload/tar.vim +++ b/runtime/autoload/tar.vim @@ -1,7 +1,7 @@ " tar.vim: Handles browsing tarfiles " AUTOLOAD PORTION -" Date: Jan 07, 2020 -" Version: 32 +" Date: Nov 05, 2023 +" Version: 32a (with modifications from the Vim Project) " Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> " License: Vim License (see vim's :help license) " @@ -22,7 +22,7 @@ if &cp || exists("g:loaded_tar") finish endif -let g:loaded_tar= "v32" +let g:loaded_tar= "v32a" if v:version < 702 echohl WarningMsg echo "***warning*** this version of tar needs vim 7.2" @@ -208,7 +208,16 @@ 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) + " + " FIXME:is this actually necessary? In case of an error, we should probably + " have noticed in the if statement above since tar should have exited + " with a non-zero exit code. + 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
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2