[Moscow.pm] Странность в Text::Textile

Andrei andrei.protasovitski на gmail.com
Ср Янв 6 05:20:56 PST 2010


6 января 2010 г. 13:17 пользователь Alex Povolotsky <tarkhil на over.ru>написал:

>  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'. Ну, или
править исходники.

Теоретически

perl -MText::Textile -e 'my $t = Text::Textile->new(charset=>"utf-8",
char_encoding => 0);print $t->textile("h1.И где он уродует
русский?\n"),"\n";'

должно работать правильно.


>
> Alex.
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>


-- 
Andrei Protasovitski
< andrei[dot]protasovitski[at]gmail[dot]com >
Diemen, Netherlands
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20100106/ff1975d5/attachment.html>


Подробная информация о списке рассылки Moscow-pm