use vars qw{%config %links %oldlinks %oldpagemtime %pagectime %pagecase
%renderedfiles %oldrenderedfiles %pagesources %depends %hooks
- %forcerebuild};
+ %forcerebuild $gettext_obj};
use Exporter q{import};
our @EXPORT = qw(hook debug error template htmlpage add_depends pagespec_match
cgiurl => '',
historyurl => '',
diffurl => '',
- anonok => 0,
rss => 0,
atom => 0,
discussion => 1,
setup => undef,
adminuser => undef,
adminemail => undef,
- plugin => [qw{mdwn inline htmlscrubber passwordauth}],
+ plugin => [qw{mdwn inline htmlscrubber passwordauth signinedit lockedit}],
timeformat => '%c',
locale => undef,
sslcookie => 0,
if (defined $config{locale}) {
eval q{use POSIX};
error($@) if $@;
- $ENV{LANG} = $config{locale}
- if POSIX::setlocale(&POSIX::LC_ALL, $config{locale});
+ if (POSIX::setlocale(&POSIX::LC_ALL, $config{locale})) {
+ $ENV{LANG}=$config{locale};
+ $gettext_obj=undef;
+ }
}
if ($config{w3mmode}) {
error("internal error: $file cannot be found");
} #}}}
-sub readfile ($;$) { #{{{
+sub readfile ($;$$) { #{{{
my $file=shift;
my $binary=shift;
+ my $wantfd=shift;
if (-l $file) {
error("cannot read a symlink ($file)");
local $/=undef;
open (IN, $file) || error("failed to read $file: $!");
binmode(IN) if ($binary);
+ return \*IN if $wantfd;
my $ret=<IN>;
close IN;
return $ret;
} #}}}
-sub writefile ($$$;$) { #{{{
+sub writefile ($$$;$$) { #{{{
my $file=shift; # can include subdirs
my $destdir=shift; # directory to put file in
my $content=shift;
my $binary=shift;
+ my $wantfd=shift;
my $test=$file;
while (length $test) {
open (OUT, ">$destdir/$file") || error("failed to write $destdir/$file: $!");
binmode(OUT) if ($binary);
+ return \*OUT if $wantfd;
print OUT $content;
close OUT;
} #}}}
$file =~ m/$regexp/;
} #}}}
-my $gettext_obj;
sub gettext { #{{{
# Only use gettext in the rare cases it's needed.
if (exists $ENV{LANG} || exists $ENV{LC_ALL} || exists $ENV{LC_MESSAGES}) {