---- bash_completion/bash_completion~ 2006-03-01 18:20:18.000000000 +0200
-+++ bash_completion/bash_completion 2008-01-08 02:50:17.000000000 +0200
-@@ -1732,29 +1732,20 @@
+support rpm (jbj rpm 4.4.7+) hrmib exports for rpm -qa filter (via %_hrmib_path /var/cache/hrmib)
+add version+release+arch to installed packages filter
+
+--
+Signed-off-by: Elan Ruusamäe <glen@delfi.ee>
+
+--- bash-completion/contrib/rpm~ 2009-07-21 06:28:45.000000000 +0300
++++ bash-completion/contrib/rpm 2009-07-21 06:37:08.381279143 +0300
+@@ -6,17 +6,31 @@
#
_rpm_installed_packages()
{
-- local ver nodig nosig
-+ # refresh cache if writable
-+ if [ /var/cache/rpmpkgs.txt -ot /var/lib/rpm/Packages -a -w /var/cache/rpmpkgs.txt ]; then
+- local ver nodig="$1" nosig="$2"
++ local nodig="$1" nosig="$2"
++
++ # if rpm (4.4.7+) is configured to export it's rpmdb to /var/cache/hrmib (%_hrmib_path)
++ if [ -d /var/cache/hrmib -a -r /var/cache/hrmib ]; then
++ COMPREPLY=( $( LC_ALL=C command ls -1 /var/cache/hrmib | sed -ne '/^'$cur'/p') )
++ return
++ fi
++
++ # refresh cache if writable. FHS location
++ if [ -w /var/cache/rpmpkgs.txt -a /var/cache/rpmpkgs.txt -ot /var/lib/rpm/Packages ]; then
+ # we grab the output to local variable to prevent possible race
-+ local tmp=$(rpm -qa --nodigest --nosignature --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n' | LC_ALL=C sort)
++ _rpm_nodigsig
++ local tmp=$(rpm -qa $nodig $nosig --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n')
+ echo "$tmp" > /var/cache/rpmpkgs.txt
+ fi
-- if [ -r /var/log/rpmpkgs -a \
-- /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]; then
-+ if [ -r /var/cache/rpmpkgs.txt -a /var/cache/rpmpkgs.txt -nt /var/lib/rpm/Packages ]; then
+ if [ -r /var/log/rpmpkgs -a \
+ /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]; then
# using RHL 7.2 or later - this is quicker than querying the DB
COMPREPLY=( $( sed -ne \
-- 's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+.*\.rpm$|\1|p' \
-- /var/log/rpmpkgs ) )
+- 's|^\('$cur'[^[:space:]]*\)-[^[:space:]-]\+-[^[:space:]-]\+\.rpm$|\1|p' \
+ 's|^\('$cur'.*\)\.rpm$|\1|p' \
-+ /var/cache/rpmpkgs.txt ) )
+ /var/log/rpmpkgs ) )
else
-- nodig=""
-- nosig=""
-- ver=$(rpm --version)
-- ver=${ver##* }
--
-- if [[ "$ver" > "4.0.4" ]]; then
-- nodig="--nodigest"
-- fi
-- if [[ "$ver" > "4.0.99" ]]; then
-- nosig="--nosignature"
-- fi
--
-- COMPREPLY=( $( rpm -qa $nodig $nosig | sed -ne \
-- 's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+$|\1|p' ) )
-+ COMPREPLY=( $( rpm -qa --nodigest --nosignature --qf '%{name}-%{version}-%{release}.%{arch}\n' "$cur*" ) )
+ _rpm_nodigsig
+- COMPREPLY=( $( rpm -qa $nodig $nosig --qf='%{NAME} ' "$cur*" ) )
++ COMPREPLY=( $( rpm -qa $nodig $nosig --qf '%{name}-%{version}-%{release}.%{arch}\n' "$cur*" ) )
fi
}