$favicon = "/static/git-favicon.png";
$javascript = "/static/gitweb.js";
$feature{'highlight'}{'default'} = [1];
+ sub toto () {
+ return 42;
+ }
# Fix a bug in Gitweb: FCGI is not Unicode aware.
+ # However no encoding must be done within git_blob_plain() and git_snapshot()
+ # which must still output in raw binary mode.
if ($first_request) {
no warnings 'redefine';
my $enc = Encode::find_encoding('UTF-8');
my $old_PRINT = \&FCGI::Stream::PRINT;
my $old_git_blob_plain = \&git_blob_plain;
- my $old_git_snapshot = \&git_snapshot;
- my $new_PRINT = sub {
- my @OUTPUT = @_;
- for (my $i = 1; $i < @_; $i++) {
- $OUTPUT[$i] = $enc->encode($_[$i], Encode::FB_CROAK|Encode::LEAVE_SRC);
- }
- @_ = @OUTPUT;
- goto $old_PRINT;
- };
- my $new_git_blob_plain = sub {
+ my $old_git_snapshot = \&git_snapshot;
+ *main::git_blob_plain = sub {
local *FCGI::Stream::PRINT = $old_PRINT;
- my $ret = $old_git_blob_plain->(@_);
- *FCGI::Stream::PRINT = $new_PRINT;
- return $ret
+ $old_git_blob_plain->(@_);
};
- my $new_git_snapshot = sub {
+ $actions{blob_plain} = \&main::git_blob_plain;
+ *main::git_snapshot = sub {
local *FCGI::Stream::PRINT = $old_PRINT;
- my $ret = $old_git_snapshot->(@_);
- *FCGI::Stream::PRINT = $new_PRINT;
- return $ret
+ $old_git_snapshot->(@_);
+ };
+ $actions{snapshot} = \&main::git_snapshot;
+ *FCGI::Stream::PRINT = sub {
+ my @OUTPUT = @_;
+ for (my $i = 1; $i < @_; $i++) {
+ $OUTPUT[$i] = $enc->encode($_[$i], Encode::FB_CROAK|Encode::LEAVE_SRC);
+ }
+ @_ = @OUTPUT;
+ goto $old_PRINT;
};
- *main::git_blob_plain = $new_git_blob_plain;
- *main::git_snapshot = $new_git_snapshot;
- $actions{blob_plain} = $new_git_blob_plain;
- $actions{snapshot} = $new_git_snapshot;
- *FCGI::Stream::PRINT = $new_PRINT;
};
'';
};