これをpull-requestにしちゃうのはちょっと気が引けるのですが、一応こんな感じの方向性でどうなんですかねーという話も兼ねて投げてみます。もうSVR4/NEWS対応は要らんでしょうし、なるたけPOSIXとか機種依存にならないコードにしたいなって。
(その割にはopenpty()を平然と使う)
sj3、BSDだと古いTTY向けのコード使ってるというのはtermiosのtc.c_cc[FOO]ではなくtc.t_fooみたいなコードのことを多分指してるのかなーという気がしてます。とりあえず、
- Linux/*BSDで動けば良い程度に整理した
- termiosの関数を積極的に使う
- signalはsigactionに置き換えた
- デフォルトのシェルは/bin/sh(cshじゃない)
- ptyのオープンはopenpty()にお任せ
- 他色々と細かい部分?
はやってみたけど、これで正しく直せたかは不明。そもそもUNIXのシステムプログラミングをきちんと(歴史を含めて)理解している訳じゃないので…