From a374bef4c7e8de63bc43471d5a3d2795173a1070 Mon Sep 17 00:00:00 2001 From: Thomas Hochstein Date: Sun, 22 Jan 2012 13:46:33 +0100 Subject: [PATCH] Correctly find $votename. If the ballot is not quoted, the current regular expression will match $nametext (minus its first word) as second line of $votename. Change regular expression to match only certain common quote characters at beginning of second line. (Perhaps it would be even better to stop matching on empty lines ...) Check for erroneus match on $nametext as a safety measure. Signed-off-by: Thomas Hochstein --- uvvote.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uvvote.pl b/uvvote.pl index 67754d2..9505edc 100755 --- a/uvvote.pl +++ b/uvvote.pl @@ -241,9 +241,9 @@ sub process_vote { } # correct voting? - if ($$body =~ /\Q$config{ballotintro}\E\s+(.+?)\s*\n(.*?[\t ]+(\S+.+)\s*$)?/m) { + if ($$body =~ /\Q$config{ballotintro}\E\s+(.+?)\s*\n([>:|]*?[\t ]+(\S+.+)\s*$)?/m) { $voting = $1; - $voting .= " $3" if defined($3); + $voting .= " $3" if (defined($3) and $3 !~ /\Q$config{nametext}\E/); push (@errors, 'WrongVoting') if ($config{votename} !~ /^\s*\Q$voting\E\s*$/); } else { push (@errors, 'NoVoting');