* Allow svnpath config option to contain additional extra slashes anywhere

w/o confusing ikiwiki.
* Rcs modules are now imported, so other modules that need similar
  normalisation of configs etc can do so.
master
joey 2007-06-23 12:12:59 +00:00
parent 9a122f001a
commit 3bfa109971
5 changed files with 30 additions and 7 deletions

View File

@ -126,7 +126,7 @@ sub checkconfig () { #{{{
unless exists $config{wikistatedir}; unless exists $config{wikistatedir};
if ($config{rcs}) { if ($config{rcs}) {
eval qq{require IkiWiki::Rcs::$config{rcs}}; eval qq{use IkiWiki::Rcs::$config{rcs}};
if ($@) { if ($@) {
error("Failed to load RCS module IkiWiki::Rcs::$config{rcs}: $@"); error("Failed to load RCS module IkiWiki::Rcs::$config{rcs}: $@");
} }

View File

@ -5,8 +5,20 @@ use strict;
use IkiWiki; use IkiWiki;
use POSIX qw(setlocale LC_CTYPE); use POSIX qw(setlocale LC_CTYPE);
package IkiWiki::Rcs::svn;
sub import { #{{{
if (exists $IkiWiki::config{svnpath}) {
# code depends on the path not having extraneous slashes
$IkiWiki::config{svnpath}=~tr#/#/#s;
$IkiWiki::config{svnpath}=~s/\/$//;
$IkiWiki::config{svnpath}=~s/^\///;
}
} #}}}
package IkiWiki; package IkiWiki;
# svn needs LC_CTYPE set to a UTF-8 locale, so try to find one. Any will do. # svn needs LC_CTYPE set to a UTF-8 locale, so try to find one. Any will do.
sub find_lc_ctype() { sub find_lc_ctype() {
my $current = setlocale(LC_CTYPE()); my $current = setlocale(LC_CTYPE());

6
debian/changelog vendored
View File

@ -1,8 +1,12 @@
ikiwiki (2.3) UNRELEASED; urgency=low ikiwiki (2.3) UNRELEASED; urgency=low
* Corrected a typo in an error handler in the image plugin. * Corrected a typo in an error handler in the image plugin.
* Allow svnpath config option to contain additional extra slashes anywhere
w/o confusing ikiwiki.
* Rcs modules are now imported, so other modules that need similar
normalisation of configs etc can do so.
-- Joey Hess <joeyh@debian.org> Tue, 19 Jun 2007 19:46:21 +0100 -- Joey Hess <joeyh@debian.org> Sat, 23 Jun 2007 13:10:06 +0100
ikiwiki (2.2) unstable; urgency=low ikiwiki (2.2) unstable; urgency=low

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-06-18 21:24+0100\n" "POT-Creation-Date: 2007-06-23 13:12+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -444,7 +444,7 @@ msgstr ""
msgid "getctime not implemented" msgid "getctime not implemented"
msgstr "" msgstr ""
#: ../IkiWiki/Rcs/svn.pm:206 #: ../IkiWiki/Rcs/svn.pm:218
msgid "" msgid ""
"REV is not set, not running from svn post-commit hook, cannot send " "REV is not set, not running from svn post-commit hook, cannot send "
"notifications" "notifications"

11
t/svn.t
View File

@ -14,7 +14,7 @@ BEGIN {
} }
} }
} }
use Test::More tests => 8; use Test::More tests => 12;
BEGIN { use_ok("IkiWiki"); } BEGIN { use_ok("IkiWiki"); }
@ -51,11 +51,18 @@ system "svn add $config{srcdir}/test2.mdwn >/dev/null";
system "svn commit $config{srcdir}/test2.mdwn -m \"$message\" >/dev/null"; system "svn commit $config{srcdir}/test2.mdwn -m \"$message\" >/dev/null";
@changes = IkiWiki::rcs_recentchanges(3); @changes = IkiWiki::rcs_recentchanges(3);
is($#changes, 1); is($#changes, 1);
is($changes[0]{message}[0]{"line"}, $message); is($changes[0]{message}[0]{"line"}, $message);
is($changes[0]{pages}[0]{"page"}, "test2.mdwn"); is($changes[0]{pages}[0]{"page"}, "test2.mdwn");
is($changes[1]{pages}[0]{"page"}, "test1.mdwn");
# extra slashes in the path shouldn't break things
$config{svnpath} = "/trunk//";
IkiWiki::checkconfig();
@changes = IkiWiki::rcs_recentchanges(3);
is($#changes, 1);
is($changes[0]{message}[0]{"line"}, $message);
is($changes[0]{pages}[0]{"page"}, "test2.mdwn");
is($changes[1]{pages}[0]{"page"}, "test1.mdwn"); is($changes[1]{pages}[0]{"page"}, "test1.mdwn");
system "rm -rf $dir"; system "rm -rf $dir";