]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Merge remote-tracking branch 'schmonz/cvs'
authorJoey Hess <joey@kitenet.net>
Sat, 2 Feb 2013 23:39:25 +0000 (10:39 +1100)
committerJoey Hess <joey@kitenet.net>
Sat, 2 Feb 2013 23:39:25 +0000 (10:39 +1100)
17 files changed:
IkiWiki/Plugin/cvs.pm
IkiWiki/Wrapper.pm
ikiwiki.spec
po/bg.po
po/cs.po
po/da.po
po/de.po
po/es.po
po/fr.po
po/gu.po
po/ikiwiki.pot
po/it.po
po/pl.po
po/sv.po
po/tr.po
po/vi.po
t/cvs.t

index 788f5116786f291d1543944c55522b6a758439e7..841aec914f7208df52036379319f4bdfda7ddc01 100644 (file)
@@ -216,14 +216,12 @@ sub rcs_add ($) {
 
        while ($file = pop @files_to_add) {
                if (@files_to_add == 0) {
-                       # file
                        cvs_runcvs('add', cvs_keyword_subst_args($file)) ||
-                               warn("cvs add $file failed\n");
+                               warn("cvs add file $file failed\n");
                }
                else {
-                       # directory
                        cvs_runcvs('add', $file) ||
-                               warn("cvs add $file failed\n");
+                               warn("cvs add dir $file failed\n");
                }
        }
 }
@@ -316,7 +314,9 @@ sub rcs_recentchanges ($) {
                        $oldrev =~ s/INITIAL/0/;
                        $newrev =~ s/\(DEAD\)//;
                        my $diffurl = defined $config{diffurl} ? $config{diffurl} : "";
-                       my $epage = uri_escape_utf8($page);
+                       my $epage = join('/',
+                               map { uri_escape_utf8($_) } split('/', $page)
+                       );
                        $diffurl=~s/\[\[file\]\]/$epage/g;
                        $diffurl=~s/\[\[r1\]\]/$oldrev/g;
                        $diffurl=~s/\[\[r2\]\]/$newrev/g;
@@ -396,11 +396,15 @@ sub rcs_diff ($;$) {
        my @cvsps = `env TZ=UTC cvsps -q --cvs-direct -z 30 -g -s $rev`;
        my $blank_lines_seen = 0;
 
+       # skip log, get to the diff
        while (my $line = shift @cvsps) {
                $blank_lines_seen++ if ($line =~ /^$/);
                last if $blank_lines_seen == 2;
        }
 
+       @cvsps = @cvsps[0..$maxlines-1]
+               if defined $maxlines && @cvsps > $maxlines;
+
        if (wantarray) {
                return @cvsps;
        }
@@ -491,24 +495,53 @@ sub cvs_keyword_subst_args ($) {
        my $filemime = File::MimeInfo::default($file);
        # if (-T $file) {
 
-       if (defined($filemime) && $filemime eq 'text/plain') {
-               return ($file);
-       }
-       else {
-               return ('-kb', $file);
-       }
+       defined($filemime) && $filemime eq 'text/plain'
+               ? return ('-kkv', $file)
+               : return ('-kb', $file);
 }
 
 sub cvs_runcvs(@) {
        my @cmd = @_;
        unshift @cmd, 'cvs', '-Q';
 
-       local $CWD = $config{srcdir};
+       # CVS can't operate outside a srcdir, so we're always setting $CWD.
+       # "local $CWD" restores the previous value when we go out of scope.
+       # Usually that's correct. But if we're removing the last file from
+       # a directory, the post-commit hook will exec in a working directory
+       # that's about to not exist (CVS will prune it).
+       #
+       # chdir() manually here, so we can selectively not chdir() back.
+
+       my $oldcwd = $CWD;
+       chdir($config{srcdir});
+
+       eval q{
+               use IPC::Open3;
+               use Symbol qw(gensym);
+               use IO::File;
+       };
+       error($@) if $@;
+
+       my $cvsout = '';
+       my $cvserr = '';
+       local *CATCHERR = IO::File->new_tmpfile;
+       my $pid = open3(gensym(), \*CATCHOUT, ">&CATCHERR", @cmd);
+       while (my $l = <CATCHOUT>) {
+               $cvsout .= $l
+                       unless 1;
+       }
+       waitpid($pid, 0);
+       my $ret = $? >> 8;
+       seek CATCHERR, 0, 0;
+       while (my $l = <CATCHERR>) {
+               $cvserr .= $l
+                       unless $l =~ /^cvs commit: changing keyword expansion /;
+       }
+
+       print STDOUT $cvsout;
+       print STDERR $cvserr;
 
-       open(my $savedout, ">&STDOUT");
-       open(STDOUT, ">", "/dev/null");
-       my $ret = system(@cmd);
-       open(STDOUT, ">&", $savedout);
+       chdir($oldcwd) if -d $oldcwd;
 
        return ($ret == 0) ? 1 : 0;
 }
index 06be36dfc8f17ad8247cace2880f21d8ce89b5fd..84b4b5a2f298f23bac5d5e223fb4144a7ebd72f1 100644 (file)
@@ -28,10 +28,11 @@ sub gen_wrappers () {
        %config=(%origconfig);
 }
 
+our $program_to_wrap = $0;
 sub gen_wrapper () {
        $config{srcdir}=File::Spec->rel2abs($config{srcdir});
        $config{destdir}=File::Spec->rel2abs($config{destdir});
-       my $this=File::Spec->rel2abs($0);
+       my $this=File::Spec->rel2abs($program_to_wrap);
        if (! -x $this) {
                error(sprintf(gettext("%s doesn't seem to be executable"), $this));
        }
index 6df19125065e252a70584971363ac3c323af504a..89f6d8c241efa0f2cb807d7cfc70701017e015b1 100644 (file)
@@ -1,5 +1,5 @@
 Name:           ikiwiki
-Version: 3.20121212
+Version: 3.20121213
 Release:        1%{?dist}
 Summary:        A wiki compiler
 
index 2ab4f5cdf9367064361b0c75b4c4e8aa6c151b92..ace53ad3e6f3bfa43140f6a37bb637df4574e0b1 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki-bg\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2007-01-12 01:19+0200\n"
 "Last-Translator: Damyan Ivanov <dam@modsodtsys.com>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -64,73 +64,73 @@ msgstr ""
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, fuzzy, perl-format
 msgid "missing %s parameter"
 msgstr "липсващ параметър „id” на шаблона"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "нов източник"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "съобщения"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "ново"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "премахване на „%s” (на %s дни)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "премахване на „%s”"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "проверка на източника „%s”"
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "не е намерен източник на адрес „%s”"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 #, fuzzy
 msgid "feed not found"
 msgstr "шаблонът „%s” не е намерен"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "данните от източника предизвикаха грешка в модула XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "създаване на нова страницa „%s”"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 #, fuzzy
 msgid "failed to process template:"
 msgstr "грешка при обработване на шаблона"
@@ -764,11 +764,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "гласуване"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "Общо гласове:"
 
@@ -1081,7 +1085,7 @@ msgstr ""
 msgid "failed to generate image from code"
 msgstr "грешка при запис на файла „%s”: %s"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1248,31 +1252,31 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr "генериране на обвивки..."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "„%s” не е изпълним файл"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr "не може да бъде създадена обвивка, която използва файл за настройки"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "не е указан файл на обвивката"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "крешка при компилиране на файла %s"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "успешно генериране на %s"
index a43b035cddd4ad9914b693e2da84bc2691dff620..07489c8cf9ba65ce63f367f0158e064c55518e2b 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2009-09-11 20:23+0200\n"
 "Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
 "Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
@@ -64,72 +64,72 @@ msgstr "Agregace spuštěna přes web."
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr "Není třeba nic dělat, všechny kanály jsou aktuální!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, perl-format
 msgid "missing %s parameter"
 msgstr "chybí parametr %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "nový kanál"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "příspěvky"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "nový"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "expiruji %s (stará %s dnů)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "expiruji %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr "poslední kontrola %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "kontroluji kanál %s ..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "nemohu najít kanál na %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 msgid "feed not found"
 msgstr "kanál nebyl nalezen"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr "(neplatné UTF-8 bylo z kanálu odstraněno)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr "(entity byly v kanálu zakódovány)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "kanál shodil XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "vytvářím novou stránku %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 #, fuzzy
 msgid "failed to process template:"
 msgstr "nepodařilo se zpracovat:"
@@ -760,11 +760,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "hlasovat"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "Celkem hlasů:"
 
@@ -1065,7 +1069,7 @@ msgstr "chybí TeXový kód"
 msgid "failed to generate image from code"
 msgstr "z kódu se nepodařilo vygenerovat obrázek"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1239,31 +1243,31 @@ msgstr "** Deaktivuji modul %s, protože selhává s touto hláškou:"
 msgid "generating wrappers.."
 msgstr "generuji obaly..."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "%s není spustitelný soubor"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr "nemohu vytvořit obal, který využívá soubor setup"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "jméno souboru s obalem nebylo zadáno"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "nelze zkompilovat %s"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "%s byl úspěšně vytvořen"
index 2a05ba2156e5136ba55501eefec845ca19c9ddc5..1b14c0b41986980630b7aeba0d60a6f188db223c 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 3.20110430\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2011-05-05 13:30+0200\n"
 "Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
 "Language-Team: None\n"
@@ -68,72 +68,72 @@ msgstr "Indsamling udløst via web."
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr "Intet at gøre lige nu, alle fødninger er tidssvarende!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, perl-format
 msgid "missing %s parameter"
 msgstr "mangler parametren %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "ny fødning"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "indlæg"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "nyt"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "udløber %s (%s dage gammel)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "udløber %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr "senest undersøgt %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "undersøger fødning %s ..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "kunne ikke finde fødning ved %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 msgid "feed not found"
 msgstr "fødning ikke fundet"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr "(defekt UTF-8 fjernet fra fødning)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr "(fødningselementer omgået (escaped))"
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "fødning fik XML::Feed til at bryde sammen!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "opretter ny side %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 msgid "failed to process template:"
 msgstr "behandling af skabelon mislykkedes:"
 
@@ -762,11 +762,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr "%s har forkert syntaks: skal bruge CODE|NAME"
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "stem"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "Samlede stemmer:"
 
@@ -1067,7 +1071,7 @@ msgstr "manglende tex-kode"
 msgid "failed to generate image from code"
 msgstr "billedopbygning fra kode mislykkedes"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1241,31 +1245,31 @@ msgstr "** Deaktiverer udvidelse %s, da den fejler med denne besked:"
 msgid "generating wrappers.."
 msgstr "bygger wrappers.."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "%s ser ikke ud til at kunne afvikles"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr "kan ikke oprette en wrapper som bruger en opsætningsfil"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "wrapper-navn ikke angivet"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "kompilering af %s mislykkedes"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "Korrekt bygget %s"
index c19fedb5ac7bab7f5a42e5a29a5820b4c1770d30..bba40e79f39597d9f29a2508402c383c9b443793 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 3.14159\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2010-03-14 16:09+0530\n"
 "Last-Translator: Sebastian Kuhnert <mail@sebastian-kuhnert.de>\n"
 "Language-Team: German <debian-l10n-german@lists.debian.org>\n"
@@ -65,72 +65,72 @@ msgstr "Das Web löst die Zusammenstellung aus"
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr "Es gibt nichts zu tun, alle Vorlagen (feeds) sind aktuell!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, perl-format
 msgid "missing %s parameter"
 msgstr "Parameter %s fehlt"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "neue Vorlage (feed)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "Beiträge"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "neu"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "%s läuft aus (%s Tage alt)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "%s läuft aus"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr "zuletzt geprüft %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "überprüfe Vorlage (feed) %s ..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "konnte Vorlage (feed) unter %s nicht finden"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 msgid "feed not found"
 msgstr "Vorlage (feed) nicht gefunden"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr "(ungültiges UTF-8 wurde aus der Vorlage (feed) entfernt)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr "(Einträge in der Vorlage (feed) wurden maskiert)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "Vorlage (feed) führte zum Absturz von XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "erstelle neue Seite %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 #, fuzzy
 msgid "failed to process template:"
 msgstr "Fehler beim Ablauf:"
@@ -772,11 +772,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "abstimmen"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "Alle Stimmen:"
 
@@ -1079,7 +1083,7 @@ msgstr "fehlender TeX-Code"
 msgid "failed to generate image from code"
 msgstr "konnte kein Bild aus dem Code erzeugen"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1259,31 +1263,31 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr "erzeuge Wrapper.."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "%s scheint nicht ausführbar zu sein"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr "Kann keinen Wrapper erzeugen, der eine Einrichtungsdatei verwendet"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "Dateiname des Wrappers nicht angegeben"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "erzeugen von %s fehlgeschlagen"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "%s wurde erfolgreich erstellt"
index d215c1b4ee23bac860f04a99bb1dfaa2e5c5da12..917fc49be0f7f5d9f7c7094a4ea3bbe421689230 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: es\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2009-06-14 12:32+0200\n"
 "Last-Translator: Victor Moral <victor@taquiones.net>\n"
 "Language-Team:  <en@li.org>\n"
@@ -70,72 +70,72 @@ msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr ""
 "¡ No hay nada que hacer, todas las fuentes de noticias están actualizadas !"
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, perl-format
 msgid "missing %s parameter"
 msgstr "falta el parámetro %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "nueva entrada"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "entradas"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "nuevo"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "%s caducada (%s días de antigüedad)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "%s caducada"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr "última comprobación el %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "comprobando fuente de datos %s ..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "no puedo encontrar la fuente de datos en %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 msgid "feed not found"
 msgstr "fuente de datos no encontrada"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr "(una secuencia UTF-8 inválida ha sido eliminada de la fuente de datos)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr "(los caracteres especiales de la fuente de datos están exceptuados)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "¡ la fuente de datos ha provocado un error fatal en XML::Feed !"
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "creando nueva página %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 #, fuzzy
 msgid "failed to process template:"
 msgstr "se ha producido un error fatal mientras procesaba la plantilla:"
@@ -775,11 +775,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "Votar"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "Recuento de votos:"
 
@@ -1084,7 +1088,7 @@ msgstr "falta el código tex"
 msgid "failed to generate image from code"
 msgstr "no he podido crear la imagen desde el código"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1263,32 +1267,32 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr "generando programas auxiliares.."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "el programa %s no parece ser ejecutable"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr ""
 "no puedo crear un programa envoltorio que utiliza un archivo de configuración"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "el programa envoltorio no ha sido especificado"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "ha fallado la compilación del programa %s"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "creado con éxito el programa envoltorio %s"
index aef6a2a1da04b460d09345a030b62532c04b3316..5e4d414b63ddc9fb558116ff58b40033c1ca6307 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 3.141\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2010-10-03 10:42+0200\n"
 "Last-Translator: Philippe Batailler <philippe.batailler@free.fr>\n"
 "Language-Team: French <debian-l10n-french@lists.debian.org>\n"
@@ -66,72 +66,72 @@ msgstr "Agrégation déclenchée par le web"
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr "Rien à faire pour le moment, tous les flux sont à jour !"
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, perl-format
 msgid "missing %s parameter"
 msgstr "Paramètre %s manquant"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "Nouveau flux"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "Articles"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "Nouveau"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "Fin de validité de %s (date de %s jours)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "Fin de validité de %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr "dernière vérification : %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "Vérification du flux %s..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "Impossible de trouver de flux à %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 msgid "feed not found"
 msgstr "Flux introuvable "
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr "(chaîne UTF-8 non valable supprimée du flux)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr "(échappement des entités de flux)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "Plantage du flux XML::Feed !"
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "Création de la nouvelle page %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 msgid "failed to process template:"
 msgstr "Échec du traitementdu modèle :"
 
@@ -769,11 +769,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr "La syntaxe de %s n'est pas correcte : il faut utiliser CODE|NOM"
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "Voter"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "Total des suffrages :"
 
@@ -1076,7 +1080,7 @@ msgstr "Il manque le code TeX"
 msgid "failed to generate image from code"
 msgstr "Échec de la création de l'image à partir du code"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1256,32 +1260,32 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr "Création des fichiers CGI..."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "%s ne semble pas être exécutable"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr ""
 "Impossible de créer un fichier CGI utilisant un fichier de configuration"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "Le nom du fichier CGI n'a pas été indiqué"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "Échec de la compilation de %s"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "%s a été créé avec succès"
index 9d2d53fada094ba05ca8c308d57decb16e53cd3e..7a47746d4f2824a9ed389c966449ab2ff66a7d00 100644 (file)
--- a/po/gu.po
+++ b/po/gu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki-gu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2007-01-11 16:05+0530\n"
 "Last-Translator: Kartik Mistry <kartik.mistry@gmail.com>\n"
 "Language-Team: Gujarati <team@utkarsh.org>\n"
@@ -63,72 +63,72 @@ msgstr ""
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, perl-format
 msgid "missing %s parameter"
 msgstr "ખોવાયેલ %s વિકલ્પ"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "નવું ફીડ"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "પોસ્ટ"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "નવું"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "જુનું કરે છે %s (%s દિવસો જુનું)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "જુનું કરે છે %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "ફીડ %s ચકાસે છે ..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "%s પર ફીડ મળી શક્યું નહી"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 msgid "feed not found"
 msgstr "ફીડ મળ્યું નહી"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, fuzzy, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr "ફીડમાંથી અયોગ્ય રીતે UTF-8 નીકાળેલ છે"
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "ફીડ ભાંગી ગયું XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "નવું પાનું %s બનાવે છે"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 #, fuzzy
 msgid "failed to process template:"
 msgstr "ક્રિયા કરવામાં નિષ્ફળ:"
@@ -755,11 +755,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "મત"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "કુલ મત:"
 
@@ -1069,7 +1073,7 @@ msgstr "ખોવાયેલ કિંમતો"
 msgid "failed to generate image from code"
 msgstr "માપ બદલવામાં નિષ્ફળ: %s"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1236,31 +1240,31 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr "આવરણ બનાવે છે.."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "%s એ ચલાવી શકાય તેમ લાગતું નથી"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr "ગોઠવણ ફાઇલનો ઉપયોગ કરે છે તેનું આવરણ બનાવી શકાતું નથી"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "આવરણ ફાઇલનામ સ્પષ્ટ કરેલ નથી"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "%s કમ્પાઇલ કરવામાં નિષ્ફળ"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "સફળતાપૂર્વક પેદા કરેલ છે %s"
index d1307cde52e9d04ee23e9090cde63ef5230a9d91..fe83c4866438b5c03046ed51af2de2d1cea1a39d 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-12-11 12:49-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -64,72 +64,72 @@ msgstr ""
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, perl-format
 msgid "missing %s parameter"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 msgid "feed not found"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 msgid "failed to process template:"
 msgstr ""
 
@@ -737,11 +737,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr ""
 
@@ -1042,7 +1046,7 @@ msgstr ""
 msgid "failed to generate image from code"
 msgstr ""
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1209,31 +1213,31 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr ""
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr ""
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr ""
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr ""
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr ""
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr ""
index 062f1c2a71f26e1956e5eb8ad934eca4e254a8ad..e5e25f39e2a40a29759ba06b1f800cc43829409f 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2009-08-16 11:01+0100\n"
 "Last-Translator: Luca Bruno <lucab@debian.org>\n"
 "Language-Team: Italian TP <tp@lists.linux.it>\n"
@@ -63,72 +63,72 @@ msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr ""
 "Nessuna azione da intraprendere, tutti i notiziari sono già aggiornati."
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, perl-format
 msgid "missing %s parameter"
 msgstr "parametro %s mancante"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "nuovo notiziario"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "articoli"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "nuovo"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "in scadenza %s (vecchio di %s giorni)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "in scadenza %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr "ultimo controllo %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "controllo notiziario %s..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "impossibile trovare il notiziario %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 msgid "feed not found"
 msgstr "notiziario non trovato"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr "(codifica UTF-8 non valida eliminata dal notiziario)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr "(entità del notiziario espanse con escape)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "il notiziario ha fatto andare in crash XML::Feed."
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "creazione nuova pagina %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 #, fuzzy
 msgid "failed to process template:"
 msgstr "errore nell'elaborazione:"
@@ -769,11 +769,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "voto"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "Voti totali:"
 
@@ -1076,7 +1080,7 @@ msgstr "codice tex mancante"
 msgid "failed to generate image from code"
 msgstr "impossibile generare l'immagine dal codice"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1251,31 +1255,31 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr "generazione contenitori..."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "%s non sembra essere eseguibile"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr "impossibile creare un contenitore che utilizzi un file di setup"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "nome del file del contenitore non specificato"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "errore nel compilare %s"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "%s generato con successo"
index 3b645d23eae2580e9bca61c3ef795e972ae561a8..50a4dd219cb0e8bc76196ad7470c7011985691c0 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 1.51\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2007-04-27 22:05+0200\n"
 "Last-Translator: Pawel Tecza <ptecza@net.icm.edu.pl>\n"
 "Language-Team: Debian L10n Polish <debian-l10n-polish@lists.debian.org>\n"
@@ -66,73 +66,73 @@ msgstr ""
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, fuzzy, perl-format
 msgid "missing %s parameter"
 msgstr "brakujący parametr %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "nowy kanał RSS"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "wpisy"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "nowy wpis"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "wygasający wpis %s (ma już %s dni)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "wygasający wpis %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "sprawdzanie kanału RSS %s..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "nie znaleziono kanału RSS pod adresem %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 #, fuzzy
 msgid "feed not found"
 msgstr "nieznaleziony kanał RSS"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, fuzzy, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr "Nieprawidłowe kodowanie UTF-8 usunięte z kanału RSS"
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "awaria kanału RSS w module XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "tworzenie nowej strony %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 #, fuzzy
 msgid "failed to process template:"
 msgstr "awaria w trakcie przetwarzania:"
@@ -768,11 +768,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "głosuj"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "Oddane głosy:"
 
@@ -1090,7 +1094,7 @@ msgstr "brakujące wartości"
 msgid "failed to generate image from code"
 msgstr "awaria w trakcie zmiany rozmiaru: %s"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1257,31 +1261,31 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr "tworzenie osłon..."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "osłona %s nie jest wykonywalna"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr "awaria w trakcie tworzenia osłony używającej pliku konfiguracyjnego"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "nieokreślona nazwa pliku osłony"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "awaria w trakcie kompilowania %s"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "pomyślnie utworzono %s"
index cebd63d86904797d0b9da50c9b5b17227e04e02f..320eb99000680345a3bf875a1b924c026a43a670 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2007-01-10 23:47+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -63,73 +63,73 @@ msgstr ""
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, fuzzy, perl-format
 msgid "missing %s parameter"
 msgstr "mall saknar id-parameter"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "ny kanal"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "inlägg"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "ny"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "låter %s gå ut (%s dagar gammal)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "låter %s gå ut"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "kontrollerar kanalen %s ..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "kunde inte hitta kanalen på %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 #, fuzzy
 msgid "feed not found"
 msgstr "mallen %s hittades inte"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "kanalen kraschade XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "skapar nya sidan %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 #, fuzzy
 msgid "failed to process template:"
 msgstr "misslyckades med att behandla mall:"
@@ -760,11 +760,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "röst"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "Antal röster:"
 
@@ -1076,7 +1080,7 @@ msgstr ""
 msgid "failed to generate image from code"
 msgstr "misslyckades med att skriva %s: %s"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1243,31 +1247,31 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr "genererar wrappers.."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "%s verkar inte vara körbar"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr "kan inte skapa en wrapper som använder en konfigurationsfil"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "filnamn för wrapper har inte angivits"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "misslyckades med att kompilera %s"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "generering av %s lyckades"
index b29e2c6d8587061711a188a662098b99efc04a05..ae1bf6ad4056705e75de883de67cac7dfefb4b8b 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 3.20091031\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2009-11-08 03:04+0200\n"
 "Last-Translator: Recai Oktaş <roktas@debian.org>\n"
 "Language-Team: Turkish <debian-l10n-turkish@lists.debian.org>\n"
@@ -60,72 +60,72 @@ msgstr ""
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, perl-format
 msgid "missing %s parameter"
 msgstr "%s parametresi eksik"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "yeni özet akışı"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "gönderi"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "yeni"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "%s için zaman aşımı (%s gün eski)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "%s için zaman aşımı"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr "son güncelleme: %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "%s özet akışı denetleniyor ..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "%s özet akışı bulunamadı"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 msgid "feed not found"
 msgstr "özet akışı bulunamadı"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr "(geçersiz UTF-8 dizgisi özet akışından çıkarıldı)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr "(özet akışı girdileri işlendi)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "özet akışı XML::Feed'in çakılmasına yol açtı!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "%s için yeni sayfa oluşturuluyor"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 msgid "failed to process template:"
 msgstr ""
 
@@ -734,11 +734,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr ""
 
@@ -1039,7 +1043,7 @@ msgstr ""
 msgid "failed to generate image from code"
 msgstr ""
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1207,31 +1211,31 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr ""
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr ""
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr ""
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr ""
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr ""
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr ""
index 0d9f5736fc87f59b3753e698b0d16ebb1722a840..26fa35c9aa5a301a26040e20087533b8bc99a406 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-16 15:16-0400\n"
+"POT-Creation-Date: 2013-02-02 14:16-0500\n"
 "PO-Revision-Date: 2007-01-13 15:31+1030\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -64,73 +64,73 @@ msgstr ""
 msgid "Nothing to do right now, all feeds are up-to-date!"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:237
+#: ../IkiWiki/Plugin/aggregate.pm:236
 #, fuzzy, perl-format
 msgid "missing %s parameter"
 msgstr "mẫu thiếu tham số id"
 
-#: ../IkiWiki/Plugin/aggregate.pm:272
+#: ../IkiWiki/Plugin/aggregate.pm:271
 msgid "new feed"
 msgstr "nguồn tin mới"
 
-#: ../IkiWiki/Plugin/aggregate.pm:286
+#: ../IkiWiki/Plugin/aggregate.pm:285
 msgid "posts"
 msgstr "bài"
 
-#: ../IkiWiki/Plugin/aggregate.pm:288
+#: ../IkiWiki/Plugin/aggregate.pm:287
 msgid "new"
 msgstr "mới"
 
-#: ../IkiWiki/Plugin/aggregate.pm:475
+#: ../IkiWiki/Plugin/aggregate.pm:474
 #, perl-format
 msgid "expiring %s (%s days old)"
 msgstr "đang mãn hạn %s (cũ %s ngày)"
 
-#: ../IkiWiki/Plugin/aggregate.pm:482
+#: ../IkiWiki/Plugin/aggregate.pm:481
 #, perl-format
 msgid "expiring %s"
 msgstr "đang mãn hạn %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:509
 #, perl-format
 msgid "last checked %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:513
 #, perl-format
 msgid "checking feed %s ..."
 msgstr "đang kiểm tra nguồn tin %s ..."
 
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:518
 #, perl-format
 msgid "could not find feed at %s"
 msgstr "không tìm thấy nguồn tin ở %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:542
+#: ../IkiWiki/Plugin/aggregate.pm:541
 #, fuzzy
 msgid "feed not found"
 msgstr "không tìm thấy mẫu %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:553
+#: ../IkiWiki/Plugin/aggregate.pm:552
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:561
+#: ../IkiWiki/Plugin/aggregate.pm:560
 #, perl-format
 msgid "(feed entities escaped)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/aggregate.pm:569
+#: ../IkiWiki/Plugin/aggregate.pm:568
 msgid "feed crashed XML::Feed!"
 msgstr "nguồn tin đã gây ra XML::Feed sụp đổ."
 
-#: ../IkiWiki/Plugin/aggregate.pm:661
+#: ../IkiWiki/Plugin/aggregate.pm:660
 #, perl-format
 msgid "creating new page %s"
 msgstr "đang tạo trang mới %s"
 
-#: ../IkiWiki/Plugin/aggregate.pm:689 ../IkiWiki/Plugin/edittemplate.pm:135
+#: ../IkiWiki/Plugin/aggregate.pm:688 ../IkiWiki/Plugin/edittemplate.pm:135
 #, fuzzy
 msgid "failed to process template:"
 msgstr "mẫu không xử lý được:"
@@ -760,11 +760,15 @@ msgstr ""
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
 
-#: ../IkiWiki/Plugin/poll.pm:70
+#: ../IkiWiki/Plugin/poll.pm:72 ../IkiWiki/Plugin/poll.pm:87
 msgid "vote"
 msgstr "bỏ phiếu"
 
-#: ../IkiWiki/Plugin/poll.pm:78
+#: ../IkiWiki/Plugin/poll.pm:86
+msgid "Write in"
+msgstr ""
+
+#: ../IkiWiki/Plugin/poll.pm:93
 msgid "Total votes:"
 msgstr "Tổng số phiếu :"
 
@@ -1076,7 +1080,7 @@ msgstr ""
 msgid "failed to generate image from code"
 msgstr "lỗi ghi %s: %s"
 
-#: ../IkiWiki/Plugin/trail.pm:363
+#: ../IkiWiki/Plugin/trail.pm:393
 #, perl-format
 msgid "building %s, its previous or next page has changed"
 msgstr ""
@@ -1243,31 +1247,31 @@ msgstr ""
 msgid "generating wrappers.."
 msgstr "đang tạo ra các bộ bao bọc.."
 
-#: ../IkiWiki/Wrapper.pm:36
+#: ../IkiWiki/Wrapper.pm:37
 #, perl-format
 msgid "%s doesn't seem to be executable"
 msgstr "có vẻ là %s không phải có khả năng thực hiện"
 
-#: ../IkiWiki/Wrapper.pm:40
+#: ../IkiWiki/Wrapper.pm:41
 msgid "cannot create a wrapper that uses a setup file"
 msgstr "không thể tạo bộ bao bọc sử dụng tập tin thiết lập"
 
-#: ../IkiWiki/Wrapper.pm:44
+#: ../IkiWiki/Wrapper.pm:45
 msgid "wrapper filename not specified"
 msgstr "chưa xác định tên tập tin bộ bao bọc"
 
-#: ../IkiWiki/Wrapper.pm:108
+#: ../IkiWiki/Wrapper.pm:109
 msgid "Please wait"
 msgstr ""
 
 #. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:267
+#: ../IkiWiki/Wrapper.pm:268
 #, perl-format
 msgid "failed to compile %s"
 msgstr "lỗi biên dịch %s"
 
 #. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:287
+#: ../IkiWiki/Wrapper.pm:288
 #, perl-format
 msgid "successfully generated %s"
 msgstr "%s đã được tạo ra"
diff --git a/t/cvs.t b/t/cvs.t
index 9afd5a7e9061767f8cc0f1f5ad08d97dcc335c98..cbac43252ecbe7ae4c1ef850cff83fe1187d1dde 100755 (executable)
--- a/t/cvs.t
+++ b/t/cvs.t
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 use warnings;
 use strict;
-use Test::More; my $total_tests = 42;
+use Test::More; my $total_tests = 72;
 use IkiWiki;
 
 my $default_test_methods = '^test_*';
@@ -26,14 +26,13 @@ sub test_web_comments {
        # - when the first comment for page.mdwn is added, and page/ is
        #   created to hold the comment, page/ isn't added to CVS control,
        #   so the comment isn't either
+       #   - can't reproduce after chmod g+s ikiwiki.cgi (20120204)
        # - side effect for moderated comments: after approval they
        #   show up normally AND are still pending, too
        # - comments.pm treats rcs_commit_staged() as returning conflicts?
 }
 
 sub test_chdir_magic {
-       # cvs.pm operations are always occurring inside $config{srcdir}
-       # other ikiwiki operations are occurring wherever, and are unaffected
        # when are we bothering with "local $CWD" and when aren't we?
 }
 
@@ -52,12 +51,14 @@ sub test_cvs_run_cvs {
        # steal from git.pm: safe_git(), run_or_{die,cry,non}
        # - open() instead of system()
        # always call cvs_run_cvs(), don't ever run 'cvs' directly
+       # - for cvs_info(), make it respect wantarray
 }
 
 sub test_cvs_run_cvsps {
        # parameterize command like run_cvs()
        # expose config vars for e.g. "--cvs-direct -z 30"
        # always pass -x (unless proven otherwise)
+       # - but diff doesn't! optimization alert
        # always pass -b HEAD (configurable like gitmaster_branch?)
 }
 
@@ -94,21 +95,43 @@ sub test_cvs_is_controlling {
 # TESTS FOR GENERAL PLUGIN API CALLS
 
 sub test_checkconfig {
-       # undef cvspath, expect "ikiwiki"
-       # define cvspath normally, get it back
-       # define cvspath in a subdir, get it back?
-       # define cvspath with extra slashes, get sanitized version back
-       # - yoink test_extra_path_slashes
-       # undef cvs_wrapper, expect $config{wrappers} same size as before
-
-       my $initial_cvspath = $config{cvspath};
-       $config{cvspath} = "/ikiwiki//";
+       my $default_cvspath = 'ikiwiki';
+
+       undef $config{cvspath}; IkiWiki::checkconfig();
+       is(
+               $config{cvspath}, $default_cvspath,
+               q{can provide default cvspath},
+       );
+
+       $config{cvspath} = "/$default_cvspath/"; IkiWiki::checkconfig();
+       is(
+               $config{cvspath}, $default_cvspath,
+               q{can set typical cvspath and strip well-meaning slashes},
+       );
+
+       $config{cvspath} = "/$default_cvspath//subdir"; IkiWiki::checkconfig();
+       is(
+               $config{cvspath}, "$default_cvspath/subdir",
+               q{can really sanitize cvspath as assumed by rcs_recentchanges},
+       );
+
+       my $default_num_wrappers = @{$config{wrappers}};
+       undef $config{cvs_wrapper}; IkiWiki::checkconfig();
+       is(
+               @{$config{wrappers}}, $default_num_wrappers,
+               q{can start with no wrappers configured},
+       );
+
+       $config{cvs_wrapper} = $config{cvsrepo} . "/CVSROOT/post-commit";
        IkiWiki::checkconfig();
        is(
-               $config{cvspath},
-               $initial_cvspath,
-               q{rcs_recentchanges assumes checkconfig has sanitized cvspath},
+               @{$config{wrappers}}, ++$default_num_wrappers,
+               q{can add cvs_wrapper},
        );
+
+       undef $config{cvs_wrapper};
+       $config{cvspath} = $default_cvspath;
+       IkiWiki::checkconfig();
 }
 
 sub test_getsetup {
@@ -132,6 +155,11 @@ sub test_rcs_prepedit {
        # for existing file, returns latest revision in repo
        # - what's this used for? should it return latest revision in checkout?
        # for new file, returns empty string
+
+       # netbsd web log says "could not open lock file"
+       # XXX does this work right?
+       # how about with un-added dirs in the srcdir?
+       # how about with cvsps.core lying around?
 }
 
 sub test_rcs_commit {
@@ -145,7 +173,8 @@ sub test_rcs_commit {
        # - else, revert + return content with the conflict markers in it
        # git.pm receives "session" param -- useful here?
        # web commits start with "web commit {by,from} "
-       # seeing File::chdir errors on commit?
+
+       # XXX commit can fail due to "could not open lock file"
 }
 
 sub test_rcs_commit_staged {
@@ -159,9 +188,21 @@ sub test_rcs_add {
 
        my $message = "add a top-level ASCII (non-UTF-8) page via VCS API";
        my $file = q{test0.mdwn};
-       add_and_commit($file, $message, q{* some plain ASCII text});
+       add_and_commit($file, $message, qq{# \$Id\$\n* some plain ASCII text});
        is_newly_added($file);
-       is_in_keyword_substitution_mode($file, undef);
+       is_in_keyword_substitution_mode($file, q{-kkv});
+       like(
+               readfile($config{srcdir} . "/$file"),
+               qr/^# \$Id: $file,v 1\.1 .+\$$/m,
+               q{can expand RCS Id keyword},
+       );
+       my $generated_file = $config{destdir} . q{/test0/index.html};
+       ok(-e $generated_file, q{post-commit hook generates content});
+       like(
+               readfile($generated_file),
+               qr/^<h1>\$Id: $file,v 1\.1 .+\$<\/h1>$/m,
+               q{can htmlize mdwn, including RCS Id},
+       );
        @changes = IkiWiki::rcs_recentchanges(3);
        is_total_number_of_changes(\@changes, 1);
        is_most_recent_change(\@changes, stripext($file), $message);
@@ -187,7 +228,7 @@ sub test_rcs_add {
        $file = q{test4/test5/test1.mdwn};
        add_and_commit($file, $message, readfile("t/test1.mdwn"));
        is_newly_added($file);
-       is_in_keyword_substitution_mode($file, undef);
+       is_in_keyword_substitution_mode($file, q{-kkv});
        @changes = IkiWiki::rcs_recentchanges(3);
        is_total_number_of_changes(\@changes, 2);
        is_most_recent_change(\@changes, stripext($file), $message);
@@ -218,14 +259,14 @@ sub test_rcs_add {
        $message = "add a UTF-8 and a binary file in different dirs";
        my $file1 = "test8/test9.mdwn";
        my $file2 = "test10/test11.ico";
-       can_mkdir(qw(test8 test10));
+       can_mkdir($_) for (qw(test8 test10));
        writefile($file1, $config{srcdir}, readfile('t/test2.mdwn'));
        writefile($file2, $config{srcdir}, $bindata_in, 1);
        IkiWiki::rcs_add($_) for ($file1, $file2);
        IkiWiki::rcs_commit_staged(message => $message);
        is_newly_added($_) for ($file1, $file2);
-       is_in_keyword_substitution_mode($file1, undef);
-       is_in_keyword_substitution_mode($file2, '-kb');
+       is_in_keyword_substitution_mode($file1, q{-kkv});
+       is_in_keyword_substitution_mode($file2, q{-kb});
        @changes = IkiWiki::rcs_recentchanges(3);
        is_total_number_of_changes(\@changes, 3);
        @changes = IkiWiki::rcs_recentchanges(4);
@@ -233,15 +274,39 @@ sub test_rcs_add {
        # XXX test for both files in the commit, and no other files
        is_most_recent_change(\@changes, $file2, $message);
 
+       $message = "remove the UTF-8 and binary files we just added";
+       IkiWiki::rcs_remove($_) for ($file1, $file2);
+       IkiWiki::rcs_commit_staged(message => $message);
+       ok(! -d "$config{srcdir}/test8", q{empty dir pruned by post-commit});
+       ok(! -d "$config{srcdir}/test10", q{empty dir pruned by post-commit});
+       @changes = IkiWiki::rcs_recentchanges(11);
+       is_total_number_of_changes(\@changes, 5);
+       # XXX test for both files in the commit, and no other files
+       is_most_recent_change(\@changes, $file2, $message);
+
+       $message = "re-add UTF-8 and binary files with names swapped";
+       writefile($file2, $config{srcdir}, readfile('t/test2.mdwn'));
+       writefile($file1, $config{srcdir}, $bindata_in, 1);
+       IkiWiki::rcs_add($_) for ($file1, $file2);
+       IkiWiki::rcs_commit_staged(message => $message);
+       isnt_newly_added($_) for ($file1, $file2);
+       is_in_keyword_substitution_mode($file2, q{-kkv});
+       is_in_keyword_substitution_mode($file1, q{-kb});
+       @changes = IkiWiki::rcs_recentchanges(11);
+       is_total_number_of_changes(\@changes, 6);
+       # XXX test for both files in the commit, and no other files
+       is_most_recent_change(\@changes, $file2, $message);
+
        # prevent web edits from attempting to create .../CVS/foo.mdwn
        # on case-insensitive filesystems, also prevent .../cvs/foo.mdwn
        # unless your "CVS" is something else and we've made it configurable
+       # also want a pre-commit hook for this?
 
-       # can it assume we're under CVS control? or must it check?
+       # pre-commit hook:
+       # - lcase filenames
+       # - ?
 
-       # extract method: filetype-guessing
-       # add a binary file, remove it, add a text file by same name, no -kb?
-       # add a text file, remove it, add a binary file by same name, -kb?
+       # can it assume we're under CVS control? or must it check?
 }
 
 sub test_rcs_remove {
@@ -304,9 +369,67 @@ sub test_rcs_recentchanges {
 }
 
 sub test_rcs_diff {
+       my @changes = IkiWiki::rcs_recentchanges(3);
+       is_total_number_of_changes(\@changes, 0);
+
+       my $message = "add a UTF-8 and an ASCII file in different dirs";
+       my $file1 = "rcsdiff1/utf8.mdwn";
+       my $file2 = "rcsdiff2/ascii.mdwn";
+       my $contents2 = ''; $contents2 .= "$_. foo\n" for (1..11);
+       can_mkdir($_) for (qw(rcsdiff1 rcsdiff2));
+       writefile($file1, $config{srcdir}, readfile('t/test2.mdwn'));
+       writefile($file2, $config{srcdir}, $contents2);
+       IkiWiki::rcs_add($_) for ($file1, $file2);
+       IkiWiki::rcs_commit_staged(message => $message);
+
+       # XXX we rely on rcs_recentchanges() to be called first!
+       # XXX or else for no cvsps cache to exist yet...
+       # XXX because rcs_diff() doesn't pass -x (as an optimization)
+       @changes = IkiWiki::rcs_recentchanges(3);
+       is_total_number_of_changes(\@changes, 1);
+
+       unlike(
+               $changes[0]->{pages}->[0]->{diffurl},
+               qr/%2F/m,
+               q{path separators are preserved when UTF-8scaping filename},
+       );
+
+       my $changeset = 1;
+
+       my $maxlines = undef;
+       my $scalar_diffs = IkiWiki::rcs_diff($changeset, $maxlines);
+       like(
+               $scalar_diffs,
+               qr/^\+11\. foo$/m,
+               q{unbounded scalar diffs go all the way to 11},
+       );
+       my @array_diffs = IkiWiki::rcs_diff($changeset, $maxlines);
+       is(
+               $array_diffs[$#array_diffs],
+               "+11. foo\n",
+               q{unbounded array diffs go all the way to 11},
+       );
+
+       $maxlines = 8;
+       $scalar_diffs = IkiWiki::rcs_diff($changeset, $maxlines);
+       unlike(
+               $scalar_diffs,
+               qr/^\+11\. foo$/m,
+               q{bounded scalar diffs don't go all the way to 11},
+       );
+       @array_diffs = IkiWiki::rcs_diff($changeset, $maxlines);
+       isnt(
+               $array_diffs[$#array_diffs],
+               "+11. foo\n",
+               q{bounded array diffs don't go all the way to 11},
+       );
+       is(
+               scalar @array_diffs,
+               $maxlines,
+               q{bounded array diffs contain expected maximum number of lines},
+       );
+
        # can it assume we're under CVS control? or must it check?
-       # in list context, return all lines (with \n), up to $maxlines if set
-       # in scalar context, return the whole diff, up to $maxlines if set
 }
 
 sub test_rcs_getctime {
@@ -415,6 +538,7 @@ sub list_module {
 sub _startup {
        my $can_plan = shift;
        _plan_for_test_more($can_plan);
+       hook(type => "genwrapper", id => "cvstest", call => \&_wrapper_paths);
        _generate_test_config();
 }
 
@@ -450,8 +574,12 @@ sub _generate_test_config {
        %config = IkiWiki::defaultconfig();
        $config{rcs} = "cvs";
        $config{srcdir} = "$dir/src";
+       $config{allow_symlinks_before_srcdir} = 1;
+       $config{destdir} = "$dir/dest";
        $config{cvsrepo} = "$dir/repo";
        $config{cvspath} = "ikiwiki";
+       use Cwd; $config{templatedir} = getcwd() . '/templates';
+       $config{diffurl} = "/nonexistent/cvsweb/[[file]]";
        IkiWiki::loadplugins();
        IkiWiki::checkconfig();
 }
@@ -462,12 +590,39 @@ sub _generate_test_repo {
 
        my $cvs = "cvs -d $config{cvsrepo}";
        my $dn = ">/dev/null";
+
        system "$cvs init $dn";
        system "mkdir $dir/$config{cvspath} $dn";
        system "cd $dir/$config{cvspath} && "
                . "$cvs import -m import $config{cvspath} VENDOR RELEASE $dn";
        system "rm -rf $dir/$config{cvspath} $dn";
        system "$cvs co -d $config{srcdir} $config{cvspath} $dn";
+
+       _generate_and_configure_post_commit_hook();
+}
+
+sub _generate_and_configure_post_commit_hook {
+       $config{cvs_wrapper} = $config{cvsrepo} . "/CVSROOT/test-post";
+       $config{wrapper} = $config{cvs_wrapper};
+
+       require IkiWiki::Wrapper;
+       {
+               no warnings 'once';
+               $IkiWiki::program_to_wrap = 'ikiwiki.out';
+               # XXX substitute its interpreter to Makefile's $(PERL)
+               # XXX best solution: do this to all scripts during build
+       }
+       IkiWiki::gen_wrapper();
+
+       my $cvs = "cvs -d $config{cvsrepo}";
+       my $dn = ">/dev/null";
+
+       system "mkdir $config{destdir} $dn";
+       system "cd $dir && $cvs co CVSROOT $dn && cd CVSROOT && " .
+               "echo 'DEFAULT $config{cvsrepo}/CVSROOT/test-post %{sVv} &' "
+               . " >> loginfo && "
+               . "$cvs commit -m 'test repo setup' $dn && "
+               . "cd .. && rm -rf CVSROOT";
 }
 
 sub add_and_commit {
@@ -489,18 +644,28 @@ sub can_mkdir {
        );
 }
 
-sub is_newly_added {
-       my $file = shift;
-       is(
+sub is_newly_added { _newly_added_or_not(shift, 1) }
+sub isnt_newly_added { _newly_added_or_not(shift, 0) }
+sub _newly_added_or_not {
+       my ($file, $expected_new) = @_;
+       my ($func, $word);
+       if ($expected_new) {
+               $func = \&Test::More::is;
+               $word = q{is};
+       }
+       else {
+               $func = \&Test::More::isnt;
+               $word = q{isn't};
+       }
+       $func->(
                IkiWiki::Plugin::cvs::cvs_info("Repository revision", $file),
                '1.1',
-               qq{$file is newly added to CVS},
+               qq{$file $word newly added to CVS},
        );
 }
 
 sub is_in_keyword_substitution_mode {
        my ($file, $mode) = @_;
-       $mode = '(none)' unless defined $mode;
        is(
                IkiWiki::Plugin::cvs::cvs_info("Sticky Options", $file),
                $mode,
@@ -537,3 +702,7 @@ sub stripext {
        $file =~ s|$extension$||g;
        return $file;
 }
+
+sub _wrapper_paths {
+       return qq{newenviron[i++]="PERL5LIB=$ENV{PERL5LIB}";};
+}