use "use open" pragma to avoid manually needing to specify utf8 everywhere
and also to set default stdio mode change filetype to return undef, not "unknown"master
parent
6551c1e560
commit
af029154d6
24
IkiWiki.pm
24
IkiWiki.pm
|
@ -3,8 +3,8 @@
|
|||
package IkiWiki;
|
||||
use warnings;
|
||||
use strict;
|
||||
use encoding "utf8"; # force use of utf8 for io layer
|
||||
use Encode;
|
||||
use open qw{:utf8 :std};
|
||||
|
||||
use vars qw{%config %links %oldlinks %oldpagemtime %pagectime
|
||||
%renderedfiles %pagesources %depends %hooks};
|
||||
|
@ -126,7 +126,7 @@ sub pagetype ($) { #{{{
|
|||
if ($page =~ /\.(.*)$/) {
|
||||
return $1 if exists $hooks{htmlize}{$1};
|
||||
}
|
||||
return "unknown";
|
||||
return undef;
|
||||
} #}}}
|
||||
|
||||
sub pagename ($) { #{{{
|
||||
|
@ -134,7 +134,7 @@ sub pagename ($) { #{{{
|
|||
|
||||
my $type=pagetype($file);
|
||||
my $page=$file;
|
||||
$page=~s/\Q.$type\E*$// unless $type eq 'unknown';
|
||||
$page=~s/\Q.$type\E*$// if defined $type;
|
||||
return $page;
|
||||
} #}}}
|
||||
|
||||
|
@ -162,12 +162,7 @@ sub readfile ($;$) { #{{{
|
|||
|
||||
local $/=undef;
|
||||
open (IN, $file) || error("failed to read $file: $!");
|
||||
if (! $binary) {
|
||||
binmode(IN, ":utf8");
|
||||
}
|
||||
else {
|
||||
binmode(IN);
|
||||
}
|
||||
binmode(IN) if ($binary);
|
||||
my $ret=<IN>;
|
||||
close IN;
|
||||
return $ret;
|
||||
|
@ -199,12 +194,7 @@ sub writefile ($$$;$) { #{{{
|
|||
}
|
||||
|
||||
open (OUT, ">$destdir/$file") || error("failed to write $destdir/$file: $!");
|
||||
if (! $binary) {
|
||||
binmode(OUT, ":utf8");
|
||||
}
|
||||
else {
|
||||
binmode(OUT);
|
||||
}
|
||||
binmode(OUT) if ($binary);
|
||||
print OUT $content;
|
||||
close OUT;
|
||||
} #}}}
|
||||
|
@ -340,7 +330,7 @@ sub unlockwiki () { #{{{
|
|||
} #}}}
|
||||
|
||||
sub loadindex () { #{{{
|
||||
open (IN, "<:utf8", "$config{wikistatedir}/index") || return;
|
||||
open (IN, "$config{wikistatedir}/index") || return;
|
||||
while (<IN>) {
|
||||
$_=possibly_foolish_untaint($_);
|
||||
chomp;
|
||||
|
@ -372,7 +362,7 @@ sub saveindex () { #{{{
|
|||
if (! -d $config{wikistatedir}) {
|
||||
mkdir($config{wikistatedir});
|
||||
}
|
||||
open (OUT, ">:utf8", "$config{wikistatedir}/index") ||
|
||||
open (OUT, ">$config{wikistatedir}/index") ||
|
||||
error("cannot write to $config{wikistatedir}/index: $!");
|
||||
foreach my $page (keys %oldpagemtime) {
|
||||
next unless $oldpagemtime{$page};
|
||||
|
|
|
@ -4,7 +4,7 @@ use warnings;
|
|||
use strict;
|
||||
use IkiWiki;
|
||||
use IkiWiki::UserInfo;
|
||||
use encoding 'utf8'; # force use of utf8 for io layer
|
||||
use open qw{:utf8 :std};
|
||||
use Encode;
|
||||
|
||||
package IkiWiki;
|
||||
|
|
|
@ -101,7 +101,7 @@ sub get_inline_content ($$) { #{{{
|
|||
|
||||
my $file=$pagesources{$page};
|
||||
my $type=pagetype($file);
|
||||
if ($type ne 'unknown') {
|
||||
if (defined $type) {
|
||||
return htmlize($type, preprocess($page, linkify($page, $parentpage, readfile(srcfile($file))), 1));
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -255,7 +255,7 @@ sub render ($) { #{{{
|
|||
|
||||
my $type=pagetype($file);
|
||||
my $srcfile=srcfile($file);
|
||||
if ($type ne 'unknown') {
|
||||
if (defined $type) {
|
||||
my $content=readfile($srcfile);
|
||||
my $page=pagename($file);
|
||||
delete $depends{$page};
|
||||
|
|
Loading…
Reference in New Issue