On 01/06/10 16:20, Andrei wrote:
6 января 2010 г. 13:17 пользователь Alex Povolotsky <[email protected] <mailto:[email protected]>> написал:

    On 01/06/10 15:12, Andrei wrote:
    Судя по исходникам, это баг:

    http://cpansearch.perl.org/src/BCHOATE/Text-Textile-2.12/lib/Text/Textile.pm


    Да, логично. $t->new(charser=>'utf--8') и $t->charset('utf-8')
    делают ЧУТЬ-ЧУТЬ разные вещи.

    .... значит, грабли лежат где-то выше в MojoMojo...


Я не про это. Я про то, что:

sub charset {

     my $self = shift;
     if (@_) {

         $self->{charset} = shift;
         if ($self->{charset} =~ m/^utf-?8$/i) {

             $self->char_encoding(0);
         } else {

             $self->char_encoding(1);
         }

     }
     return $self->{charset};

}
Т.е. сеттер для charset устанавливает char_encoding в 0, если /^utf-?8$/ . В то время как в new char_encoding по умолчанию устанавливается в 1, значит, его нужно устанавливать в 0 явно вместе с charset => 'utf-8'. Ну, или править исходники.

Да, я понял. В принципе, акксессор с побочным эффектом - это есть злая бага. Но от явной установки char_encoding(0) проблема не проходит...

Alex.

--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить