[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:30668] Re: gs6.51+ 日本語 (Re: gs>6.51 と psconv などでフォント未発見で gs がクラッシュ)



武です。

弟鳥食司 大先生の super hack により解明されました。

HeaderOrFooterTextLines{} に
 [/h0 (Subset of: *Mew message*0)]  
が渡されます。
そのなかの exch F で F{} に h0 が渡されます。
F{} は
/F{
  findfont
  dup/Ascent            get/Ascent            exch def
...
というように font の -dictionary- から Ascent などを get する処理を
行います。
ここで h0 = Ryumin-Light-H なので、gs-cjk が findfont に対して返す
(という日本語でいいのだろうか) font の -dictionary- に対して、
Ascent などを get しにいきます。
ところが gs-cjk が返す font の -dictionary- には Ascent が欠けている
ようで、ここでエラーが起こります。

エラーは handleerror{} で処理されるのですが、
現在の gs では、
    {nl nl(# ERRORINFO:)prnt nl nl $error/errorinfo get aload length{==}repeat}\
if
これでさらにエラーが起こります。でクラッシュします。

この行をコメントアウトするととりあえずクラッシュは避けられます。

さらに付け加えると、
 [/h0 (Subset of: *Mew message*0)]  
この (...) が奇数バイト数だとエラーが起こります。
これを
 [/h0 (Subset of: *Mew message*01)]  
に変えると少しエラーメッセージが変わります。

さらに、
/h0 14.000000 /Ryumin-Light-H DefAsciiFontMule
この行をコメントアウトすると正常に表示されます。

というわけで gs, gs-cjk, ps-print 全てにバグがあるという
とんでもない状況です。

さらに今の実装では、ヘッダ(Subset of: *Mew message*0 が表示される部分)
で、一行のなかでフォントを変えることが出来ないというバグも抱えています。
要は日本語と英語が混じったヘッダだと死?

#117740 で香田さんが報告されているのもこれと同様でしょう。

というわけで今から gs-cjk の方に報告します。
ps-print に関しては mule ML がベスト?

それから、

At Sun, 18 Nov 2001 10:17:52 +0900,
ChanChan KO wrote:

> ps関連:
> ii  ps-print       4.1.2-1        Enable printing multibyte characters in Emac
> ii  prn            940511-8       Utilities for converting plain text to PostS
> ii  psutils        1.17-13        A collection of PostScript document handling

ps-print は JP パケジで、emacs の方に merge? されているので
必要ないそうですよ?

psconv に関しては何とも言えません。

# apt-cache show ps-print も apt-cache show prn も
# なにも返さないので変だと思ったら JP だったか...
# apt-line から消してるからなぁ > JP