From f1d44763617f2d3e8c60e6314831da886c97139d Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Mon, 1 Jun 2015 00:37:30 +0200 Subject: gitweb workaround encoding issues in FCGI mode. --- .../git/files/usr/lib/cgi-bin/gitweb-wrapper.fcgi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 roles/git/files/usr/lib/cgi-bin/gitweb-wrapper.fcgi (limited to 'roles/git/files/usr/lib/cgi-bin') diff --git a/roles/git/files/usr/lib/cgi-bin/gitweb-wrapper.fcgi b/roles/git/files/usr/lib/cgi-bin/gitweb-wrapper.fcgi new file mode 100755 index 0000000..a7eea8c --- /dev/null +++ b/roles/git/files/usr/lib/cgi-bin/gitweb-wrapper.fcgi @@ -0,0 +1,22 @@ +#!/usr/bin/perl +# gitweb.cgi wrapper that fixes the UTF-8 problem with fastcgi + +# Local redefinition of FCGI::Stream::PRINT +use Encode; +use FCGI; + +our $enc = Encode::find_encoding('UTF-8'); +our $org = \&FCGI::Stream::PRINT; +no warnings 'redefine'; + +local *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 $org; +}; + +# Execute original script +do "/usr/lib/cgi-bin/gitweb.cgi"; -- cgit v1.2.3