Re: [PATCHv5 06/17] gitweb/lib - Simple select(FH) based output capture
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Oct 6, 2010, 23:26 UTC
- Message-ID
- <201010070126.26242.jnareb@gmail.com>
- In-Reply-To
- <AANLkTikVumyaJoM3=Nbf9igVheLvMB5tcc5+E+wSkb40@mail.gmail.com>
On Thu, 7 Oct 2010 01:03, Ævar Arnfjörð Bjarmason wrote:
Show 12 quoted lines
> On Wed, Oct 6, 2010 at 22:01, Jakub Narebski <jnareb@gmail.com> wrote:
>
> > * The most important issue is that I/O "layers" (PerlIO), like ':utf8'
> > or ':raw', are *already applied* to the output that is captured.
> > This means that captured output is *always* in binary (':raw') mode.
> > In Perl 6 language it means that data returned by capturing engine
> > is an equivalent of Buf, a collection of bytes, whether Buf or Str
> > (a colection of logical characters) is printed.
>
> > + # note: this does not cover all cases
> > + binmode select(), ':utf8'
> > + if ((PerlIO::get_layers($self->{'oldfh'}))[-1] eq 'utf8');Sidenote: I just realized that we can simply try to replay all but special layers from 'oldfh'.
Show 6 quoted lines
> I'm not sure but maybe we want to use ":Encoding(UTF-8)" everywhere in > this series where you've used ":utf8". I.e. use the Encoding UTF-8 > layer instead of the internal utf8 layer. > > It's more strict, see perldoc Encode's "UTF-8 vs. utf8 vs. UTF8". But > maybe we don't care.
I think for the time being we don't care.
In the future we could perhaps update gitweb to use ':encoding(UTF-8)' PerlIO layer rather than ':utf8' layer, and update capturing engine(s) appropriately.
-- Jakub Narebski Poland