summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Redhat/Command/_yum22
2 files changed, 23 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a1819e9e8..46043a2e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-05-26 Peter Stephenson <p.stephenson@samsung.com>
+
+ * Eric Cook: 35292: Completion/Redhat/Command/_yum: complete
+ installation of local files.
+
2015-05-23 Daniel Shahaf <d.s@daniel.shahaf.name>
* 35127#1: Src/Zle/compcore.c Src/Zle/computil.c: Fix
diff --git a/Completion/Redhat/Command/_yum b/Completion/Redhat/Command/_yum
index a6983283c..f4538060e 100644
--- a/Completion/Redhat/Command/_yum
+++ b/Completion/Redhat/Command/_yum
@@ -173,20 +173,34 @@ yum_repos() {
# Completion function for install
(( $+functions[_yum_install] )) || _yum_install()
{
- _yum_available_pkgs
- compadd "$@" -a -- _available_pkgs
+ if ! [[ $PREFIX == */* ]]; then
+ _yum_available_pkgs
+ fi
+
+ local ret=1
+ _tags files packages
+ while _tags; do
+ if _requested files; then
+ compadd "$@" -a -- _available_pkgs
+ fi
+ if _requested packages; then
+ _call_function - _yum_localinstall
+ fi
+ (( ret )) || break
+ done
+ return ret
}
# Completion function for localinstall
(( $+functions[_yum_localinstall] )) || _yum_localinstall()
{
- _files -g '(#i)*.rpm(-.)'
+ _files -/ -g '(#i)*.rpm(-.)'
}
# Completion function for localupdate
(( $+functions[_yum_localupdate] )) || _yum_localupdate()
{
- _files -g '(#i)*.rpm(-.)'
+ _files -/ -g '(#i)*.rpm(-.)'
}
# Completion function for update/upgrade