2016年3月9日

この話,W32TeXでは大丈夫になったようだ.実行するとこんな感じ.

>eptex sample.tex
This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (sjis) (TeX Live 2016/W32TeX/dev) (preloaded format=eptex)
 restricted \write18 enabled.
entering extended mode
(./sample.tex (./1.tex (./2.tex (./3.tex (./4.tex (./5.tex (./6.tex (./7.tex
(./8.tex (./9.tex (./10.tex (./11.tex (./12.tex (./13.tex (./14.tex (./15.tex
(./16.tex (./17.tex (./18.tex (./19.tex (./20.tex (./21.tex (./22.tex (./23.tex
(./24.tex (./25.tex (./26.tex (./27.tex (./28.tex (./29.tex (./30.tex (./31.tex
(./32.tex (./33.tex (./34.tex (./35.tex (./36.tex (./37.tex (./38.tex (./39.tex
(./40.tex (./41.tex (./42.tex (./43.tex (./44.tex (./45.tex (./46.tex (./47.tex
(./48.tex (./49.tex (./50.tex))))))))))))))))))))))))))))))))))))))))))))))))))
[1] )
Output written on sample.dvi (1 page, 744 bytes).
Transcript written on sample.log.

結果も正常.TeX Liveにもttkさんが同じ修正を施したようです.

ptexenc内にはinfile_enc[fileno(fp)]みたいにアクセスしている箇所があって,このinfile_encは(OPEN_MAXが定義されていない環境だと)長さ24の配列.なのでfilenoの返す値が24を越えるとバッファオーバーランしていた.たとえばやってみた例だとShift_JISを表す3がどっかに書き込まれちゃうことになる.前回のテストだとたまたま出力文字にあたって,それでΛが出たのでしょう(OT1エンコーディングでの3はΛ).とりあえず24を132にしたみたい.ちなみにmax_in_openは127を越えられないのでこれで大丈夫なんだと思う.

0 件のコメント:

コメントを投稿

コメントの追加にはサードパーティーCookieの許可が必要です