On 02/05/14 at 04:25pm, Pierre Neidhardt wrote:
On 14-02-05 09:51:17, Andrew Gregory wrote:
On 02/04/14 at 12:16am, Pierre Neidhardt wrote:
# 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; + my @pkgfields = /^(.*?)\/(.*?) (.*?)( \(.*?\))?( \[.*\])?$/s; + my $desc = <$syncout>;
The description needs to be read after the check for a regex match, otherwise that line will just be lost on failures.
Actually this is done on purpose. If we do not read 'desc' right now, on failure the next line will be that description which will be parsed as if it were a 'repo/pkgname pkgver ...' line.
I am getting you wrong on this?
Right now pacsearch prints any line it can't parse. If you read an extra line for the description before you check for a regex match, that line will simply be lost.
if(not @pkgfields) { # skip any non-matching line and just print it for the user print $_, "\n";
This newline needs to be removed.
Right, forgot that. Thought I cannot find a case when that happens.