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

[freewnn:00895] Re: defect in Japanese conversion



青野です。お返事の続きです。

<86lm7bo825.wl@XXXX>の記事において
hiroo@XXXXさんは書きました。

>> At Wed, 07 Aug 2002 04:37:20 +0900,
>> Hiroo Ono wrote:

>> > Linux 以外では uum で compile エラーも出ると思います。
>> > wait3 の第1引数として渡す変数の宣言が
>> >   union wait status
>> 
>> これは int に直してしまいました。

Web検索してみると似たような問題はどこでも起きているようで、
例えば
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/24036 
でOPENSTEP(NeXTSTEPも?)に対する問題として話題にされている
ようです。ヘッダファイルが引用されているのでそちらもご参照
下さい。…よく調べるとSolarisにもSunOS4互換機能として
/usr/ucbinclude/sys/wait.h が用意されているようです。

推測するに、この構造体の構造はおおむね共通であるので、int 
で呼び出した上で参照する場合はマクロを使えばよいという考え
なのかな、とWeb検索して見つかったWebページとautoconfの
info(AC_HEADER_SYS_WAIT)を見て考えました。
#GNU-makeなどは真面目にconfigureで検査しているようです。

>> > jserver/error.c の vwrite_log() の、
>> > という部分ですが、c_c->user_name[] にゴミが入っていたらそいつが出力さ
>> > れてしまう場合があります。
>> 
>> これも、isgraph() 使った修正を commit しました。

これはどんな状況で起きるものなのでしょうか。再現できるよう
な例ならお教えいただけるとありがたいです。本来なら
js_open()辺りで対応すべきことかもしれませんので…。
#一つ[freewnn:00479]の前後でVine Linux-2.1のクライアント
#が不思議な応答を返す、というのがあったのですが、すでにそ
#の環境は失われたので追試は困難です…。

関係あるかどうか分かりませんが、クライアントの接続が閉じら
れた時に各クライアントの情報を管理している配列のCLIENT
client[]のメンバーの初期化がされていません。そのため、初回
以外の接続で(JS_OPENするまでの間)直前に使っていたユーザ名
がログに記録されていました。

接続を閉じた時に呼び出されるdel_client()内でずぼらながらも
初期化するように修正してこの現象を回避してみたのでご覧下さ
い。

前回のcommitで小野さんが目指しているforkしないオプションま
で後一歩というところになって喜ばしいのですが、ほかに気になっ
た点があるのでもう少し書かせて下さい。

今回de.cで有効にされた ready_socksの表示(322行目)なのです
が、いつも同じ値が記録されるので意味があるのか分かりません。
手元にある最古のソースであるWnn-4.109-p1でも同じコードが使
われているようですが、フラグの状態を示すのなら別の表現をす
べきではないかと思います。
#手元ではno_of_ready_socks(現時点で入力がある(処理すべき) 
#接続数)に変えてしまいました。自信がないのでcommitはしま
#せんが…。
----
青野智樹	(aono@XXXX)
Personal opinion only..