diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-11-26 20:50:46 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-11-26 20:50:46 +0000 |
commit | fc11e4ad8106ffe9e2e27aeae72055e1f371e755 (patch) | |
tree | 3a7410d076b127a48ef9de5f0c3e75dca4e15121 | |
parent | b1a0a59212731913108930a6466b5bfc9b392805 (diff) |
bugfixes
-rw-r--r-- | IkiWiki/Plugin/poll.pm | 26 | ||||
-rw-r--r-- | doc/news/openid.mdwn | 2 |
2 files changed, 7 insertions, 21 deletions
diff --git a/IkiWiki/Plugin/poll.pm b/IkiWiki/Plugin/poll.pm index e92d0292f..bca8f5d54 100644 --- a/IkiWiki/Plugin/poll.pm +++ b/IkiWiki/Plugin/poll.pm @@ -94,6 +94,7 @@ sub cgi ($) { #{{{ if (defined $oldchoice && $oldchoice eq $choice) { # Same vote; no-op. IkiWiki::redirect($cgi, "$config{url}/".htmlpage($page)); + exit; } my $content=readfile(srcfile($pagesources{$page})); @@ -104,28 +105,13 @@ sub cgi ($) { #{{{ my $escape=shift; my $params=shift; return "\\[[poll $params]]" if $escape; - return $params unless --$num == 0; - my @bits=split(' ', $params); - my @ret; - while (@bits) { - my $n=shift @bits; - if ($n=~/=/) { - # val=param setting - push @ret, $n; - next; + if (--$num == 0) { + $params=~s/(^|\s+)(\d+)\s+"?\Q$choice\E"?(\s+|$)/$1.($2+1)." \"$choice\"".$3/se; + if (defined $oldchoice) { + $params=~s/(^|\s+)(\d+)\s+"?\Q$oldchoice\E"?(\s+|$)/$1.($2-1)." \"$oldchoice\"".$3/se; } - my $c=shift @bits; - $c=~s/^"(.*)"/$1/g; - next unless defined $n && defined $c; - if ($c eq $choice) { - $n++; - } - if (defined $oldchoice && $c eq $oldchoice) { - $n--; - } - push @ret, $n, "\"$c\""; } - return "[[poll ".join(" ", @ret)."]]"; + return "[[poll $params]]"; }; $content =~ s{(\\?)\[\[poll\s+([^]]+)\s*\]\]}{$edit->($1, $2)}seg; diff --git a/doc/news/openid.mdwn b/doc/news/openid.mdwn index 1c20ae89a..f657718f7 100644 --- a/doc/news/openid.mdwn +++ b/doc/news/openid.mdwn @@ -10,6 +10,6 @@ log back in, try out the OpenID signup process if you don't already have an OpenID, and see how OpenID works for you. And let me know your feelings about making such a switch. -[[poll 0 ""Accept" only "OpenID" for "logins"" 0 ""Accept" only "password" logins" "0" "Accept "both""]] +[[poll 0 "Accept only OpenID for logins" 0 "Accept only password logins" 0 "Accept both"]] --[[Joey]] |