Paclist does not list installed packages if the version is different
from the version in the repository. Change the awk command to also
match such packages from the 'pacman -Sl' output and print the
installed version. Also paclist fails for languages which translate
'installed' to more than one word. So do not use the field numbers
in a record for matching.
Fixes FS#60412
Signed-off-by: Michael Straube
---
v1 -> v2
Do not use filed numbers for matching.
Also remove export of TEXTDOMAIN and TEXTDOMAINDIR.
src/paclist.sh.in | 14 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/src/paclist.sh.in b/src/paclist.sh.in
index f827dcf..efd47af 100644
--- a/src/paclist.sh.in
+++ b/src/paclist.sh.in
@@ -20,16 +20,6 @@
declare -r myname='paclist'
declare -r myver='@PACKAGE_VERSION@'
-export TEXTDOMAIN='pacman'
-export TEXTDOMAINDIR='/usr/share/locale'
-
-# determine whether we have gettext; make it a no-op if we do not
-if ! type gettext &>/dev/null; then
- gettext() {
- echo "$@"
- }
-fi
-
usage() {
printf "%s v%s\n" "${myname}" "${myver}"
echo
@@ -59,8 +49,8 @@ elif [[ $1 = -@(V|-version) ]]; then
exit 0
fi
-printf -v installed '[%s]' "$(gettext installed)"
-pacman -Sl $1 | awk -v i="$installed" '$NF == i { print $2,$3 }'
+pacman -Sl $1 | awk '/\[.*[[:alpha:]]+]$/ {print $2,$3};
+ /\[.*[[:digit:]]+]$/ {print $2,substr($NF, 1, length($NF) - 1)}'
# exit with pacman's return value, not awk's
exit ${PIPESTATUS[0]}
--
2.19.2