diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | Completion/Redhat/Command/_rpm | 11 |
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index d8b2162ac..74295288f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2015-03-05 Peter Stephenson <p.stephenson@samsung.com> + * 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; |