Correctly find $votename.
authorThomas Hochstein <thh@inter.net>
Sun, 22 Jan 2012 12:46:33 +0000 (13:46 +0100)
committerThomas Hochstein <thh@inter.net>
Sun, 22 Jan 2012 12:46:33 +0000 (13:46 +0100)
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 <thh@inter.net>
uvvote.pl

index 67754d2..9505edc 100755 (executable)
--- a/uvvote.pl
+++ b/uvvote.pl
@@ -241,9 +241,9 @@ sub process_vote {
   }
 
   # correct voting?
   }
 
   # 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 = $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');
     push (@errors, 'WrongVoting') if ($config{votename} !~ /^\s*\Q$voting\E\s*$/);
   } else {
     push (@errors, 'NoVoting');
This page took 0.011065 seconds and 4 git commands to generate.