From ec03a233c5b1ae0256f00bfa6bf19d406d860d33 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 5 Mar 2015 14:49:47 +0000 Subject: 34654: Improved rpm -q --whatprovides completion --- ChangeLog | 3 +++ Completion/Redhat/Command/_rpm | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d8b2162ac..74295288f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2015-03-05 Peter Stephenson + * 34654: Completion/Redhat/Command/_rpm: complete absolute file + names after -q --whatprovides. + * 34651: Src/lex.c: avoid core dump if no lexical token. * Daniel Shahaf: 34647: Completion/Zsh/Function/_add-zsh-hook: diff --git a/Completion/Redhat/Command/_rpm b/Completion/Redhat/Command/_rpm index 696c12fa3..b2157bd48 100644 --- a/Completion/Redhat/Command/_rpm +++ b/Completion/Redhat/Command/_rpm @@ -32,6 +32,8 @@ # complete a RPM package file name # package_or_file # the previous two together +# file_or_package +# an absolute path to any file (not a package file) or a package # tags # complete a tag name # capability @@ -66,7 +68,7 @@ _rpm () { {-g,--group}'[query packages in one of specified groups]' --fileid --hdrid --pkgid --tid --querybynumber '--triggeredby' - '--whatprovides' + '--whatprovides:*:provided file:->file_or_package' '--whatrequires' ) sopts=${selectopts%\[*}\ --specfile @@ -246,6 +248,13 @@ _rpm () { package_or_file) state=package_file ;; + file_or_package) + if [[ $PREFIX = /* ]]; then + _wanted files expl 'file' _files + else + state=package + fi + ;; package) if ( [[ ${+_rpms} -eq 0 ]] || _cache_invalid RPMs ) && ! _retrieve_cache RPMs; -- cgit 1.4.1