487 |
if (defined $t) { |
if (defined $t) { |
488 |
my %D = (fallback => $C->{option}->{fallback_from_ucs}, reset => $C->{option}->{reset}); |
my %D = (fallback => $C->{option}->{fallback_from_ucs}, reset => $C->{option}->{reset}); |
489 |
$C->{option}->{fallback_from_ucs} = 'croak'; |
$C->{option}->{fallback_from_ucs} = 'croak'; |
490 |
$C->{option}->{reset} = {Gdesignation => 0, Ginvoke => 0}; |
$C->{option}->{reset_at_end} = {Gdesignation => 0, Ginvoke => 0}; |
491 |
eval q{$t = $C->{_encoder}->_encode_internal ($t, $C)} or undef $t; |
eval q{$t = $C->{_encoder}->_encode_internal ($t, $C)} or undef $t; |
492 |
$C->{option}->{fallback_from_ucs} = $D{fallback}; |
$C->{option}->{fallback_from_ucs} = $D{fallback}; |
493 |
$C->{option}->{reset} = $D{reset}; |
$C->{option}->{reset_at_end} = $D{reset_at_end}; |
494 |
} |
} |
495 |
if (defined $t) { |
if (defined $t) { |
496 |
$r .= $t; |
$r .= $t; |
506 |
} |
} |
507 |
} |
} |
508 |
} |
} |
509 |
($r . _back2ascii ($C)); ## Back to ASCII at the end of document if specified |
($r . _back2ascii ($C, at => 'reset_at_end')); |
510 |
} |
} |
511 |
|
|
512 |
## $O{charset} eq undef means that charset is same as the current designated one. |
## $O{charset} eq undef means that charset is same as the current designated one. |
623 |
$s =~ tr/\x00-\x7F/\x80-\xFF/ unless $left; |
$s =~ tr/\x00-\x7F/\x80-\xFF/ unless $left; |
624 |
$r . $s; |
$r . $s; |
625 |
} |
} |
626 |
sub _back2ascii (%) { |
sub _back2ascii ($;%) { |
627 |
my ($C, %O) = @_; |
my ($C, %O) = @_; |
628 |
my $r = ''; |
my $r = ''; |
629 |
if ($C->{option}->{reset}->{Gdesignation}) { |
$O{at} ||= 'reset'; |
630 |
my $F = $C->{option}->{reset}->{Gdesignation}; # \x42 |
if ($C->{option}->{$O{at}}->{Gdesignation}||$C->{option}->{reset}->{Gdesignation}) { |
631 |
|
my $F = $C->{option}->{$O{at}}->{Gdesignation} |
632 |
|
|| $C->{option}->{reset}->{Gdesignation}; # \x42 |
633 |
$r .= "\x1B\x28".$F unless $C->{G0} eq $CHARSET{G94}->{$F}; |
$r .= "\x1B\x28".$F unless $C->{G0} eq $CHARSET{G94}->{$F}; |
634 |
$C->{G0} = $CHARSET{G94}->{$F}; |
$C->{G0} = $CHARSET{G94}->{$F}; |
635 |
if ($O{reset_all}) { |
if ($O{reset_all}) { |
638 |
$C->{G3} = $CHARSET{G94}->{"\x7E"}; |
$C->{G3} = $CHARSET{G94}->{"\x7E"}; |
639 |
} |
} |
640 |
} |
} |
641 |
if ($C->{option}->{reset}->{Ginvoke}) { |
if ($C->{option}->{$O{at}}->{Ginvoke}||$C->{option}->{reset}->{Ginvoke}) { |
642 |
if ($C->{GL} ne 'G0') { |
if ($C->{GL} ne 'G0') { |
643 |
$r .= $C->{C0}->{C_LS0} || ($C->{C0} = $CHARSET{C0}->{'@'},"\x1B\x21\x40\x0F"); |
$r .= $C->{C0}->{C_LS0} || ($C->{C0} = $CHARSET{C0}->{'@'},"\x1B\x21\x40\x0F"); |
644 |
$C->{GL} = 'G0'; |
$C->{GL} = 'G0'; |