[pacman-dev] [PATCH v2 5/6] pacsearch: fields are treated uniformly when printing
Pierre Neidhardt
ambrevar at gmail.com
Mon Feb 3 18:16:51 EST 2014
We include the leading space in the match for 'group' and 'installed'. This
allows us to remove the conditions when printing.
Signed-off-by: Pierre Neidhardt <ambrevar at gmail.com>
---
contrib/pacsearch.in | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/contrib/pacsearch.in b/contrib/pacsearch.in
index 5656b07..2fde52f 100644
--- a/contrib/pacsearch.in
+++ b/contrib/pacsearch.in
@@ -91,11 +91,8 @@ sub print_pkg {
} else {
print "$MAGENTA";
}
- print "$v[0]/$RESET$BOLD$v[1] $GREEN$v[2]";
- print " $BLUE$v[3]" if $v[3] ne "";
- print " $CYAN$v[4]" if $v[4] ne "";
- print " $RESET\n";
- print " $v[5]\n";
+ print "$v[0]/$RESET$BOLD$v[1] $GREEN$v[2]$BLUE$v[3]$CYAN$v[4]$RESET\n";
+ print "$v[5]\n";
}
my %allpkgs = ();
@@ -109,8 +106,10 @@ if ($#syncpkgs >= 0) {
}
foreach $_ (@syncpkgs) {
- # we grab the following fields: repo, name, ver, group, installed, and desc
- my @pkgfields = /^(.*?)\/(.*?) (.*?) ?(\(.*?\))? ?(\[.*\])?\n(.*)$/s;
+ # We grab the following fields: repo, name, ver, group, installed, and
+ # desc. We grab leading space for 'group' and 'installed' so that we do not
+ # need to test if non-empty when printing.
+ my @pkgfields = /^(.*?)\/(.*?) (.*?)( \(.*?\))?( \[.*\])?\n(.*)$/s;
if(not @pkgfields) {
# skip any non-matching line and just print it for the user
print $_, "\n";
@@ -136,14 +135,14 @@ if ($#querypkgs >= 0) {
foreach $_ (@querypkgs) {
# We grab the same field as before, even the "installed" which is always
# empty for local searches. This allows us to reserve a cell in @pkgfields.
- my @pkgfields = /^(.*?)\/(.*?) (.*?) ?(\(.*?\))?()?\n(.*)$/s;
+ my @pkgfields = /^(.*?)\/(.*?) (.*?)( \(.*?\))?()?\n(.*)$/s;
# skip any non-matching line
next if not defined $pkgfields[1];
# check if the package was listed in the sync out
if (not exists $allpkgs{$pkgfields[1] . $pkgfields[2]}) {
# since 'group' is optional, we should fill it in if necessary
$pkgfields[3] = "" if not defined $pkgfields[3];
- $pkgfields[4] = "[$LC_INSTALLED]";
+ $pkgfields[4] = " [$LC_INSTALLED]";
print_pkg(@pkgfields);
}
}
--
1.8.5.3
More information about the pacman-dev
mailing list