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