aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Rcs/svn.pm
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-07-11 20:18:11 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-07-11 20:18:11 +0000
commitf389b08a0c8952494ff95f70c26783d3c3584cf9 (patch)
treefa0e1d5ceb4717770571b4076d90b503698728f3 /IkiWiki/Rcs/svn.pm
parent50c21744cac9842b75bfafd776b3dc4c38370b03 (diff)
downloadikiwiki-f389b08a0c8952494ff95f70c26783d3c3584cf9.tar
ikiwiki-f389b08a0c8952494ff95f70c26783d3c3584cf9.tar.gz
* Fix from Faidon for a XML parser issue that breaks utf-8 for
RecentChanges. Avoid using XML::SAX::PurePerl, which is buggy in this area, and also way slow.
Diffstat (limited to 'IkiWiki/Rcs/svn.pm')
-rw-r--r--IkiWiki/Rcs/svn.pm7
1 files changed, 7 insertions, 0 deletions
diff --git a/IkiWiki/Rcs/svn.pm b/IkiWiki/Rcs/svn.pm
index 71517f215..560eb38a3 100644
--- a/IkiWiki/Rcs/svn.pm
+++ b/IkiWiki/Rcs/svn.pm
@@ -104,8 +104,15 @@ sub rcs_recentchanges ($) { #{{{
eval q{use CGI 'escapeHTML'};
eval q{use Date::Parse};
eval q{use Time::Duration};
+ eval q{use XML::SAX};
eval q{use XML::Simple};
+ # avoid using XML::SAX::PurePerl, it's buggy with UTF-8 data
+ my @parsers = map { ${$_}{Name} } @{XML::SAX->parsers()};
+ do {
+ $XML::Simple::PREFERRED_PARSER = pop @parsers;
+ } until $XML::Simple::PREFERRED_PARSER ne 'XML::SAX::PurePerl';
+
# --limit is only supported on Subversion 1.2.0+
my $svn_version=`svn --version -q`;
my $svn_limit='';