[Mew-dist 07576] Re: user meeting?

NAKAGAWA Takayuki takayuki at example.com
1999年 2月 22日 (月) 14:29:33 JST


中川@ Mew on OS/2 の残党です。ずっと奥西師匠の陰に隠れて ROM でいまし
た(昨年 4 月 mew-dist 参加時に自己紹介しただけ)。

  週末に新しい Emacs 20.2 の OS/2 用パッチキットがリリースされまして、
本日早速乗換えました。旧版 + mew で落ちるのは emx(OS/2 の Un*x 互換ラ
イブラリ)の sbrk のメモリ解放時のバグではないか、ということから話が始
まったのですが、どうも子プロセス呼び出しの所にバグが居たようです(sbrk 
への疑いが完全に晴れたかどうかはよく判りません)。fork がない(NT 等同
様)のと、cmd.exe(DOS でいう command.com)と Unix 系シェルのオプショ
ンの違いの吸収とで、大改造してあるので。

From: OKUNISHI Fujikazu <fuji0924 at example.com>
Subject: [Mew-dist 07566] Re: user meeting?
Date: Sat, 20 Feb 1999 13:10:56 +0900
Message-ID: <14029.36274.400000.70118D at example.com>

ふ> ;; 僕もただ手をこまねいてたわけではないのですが、elisp レベルのデバッ
ふ> ;; ガでは太刀打ちできなくて、静かに蓋しました(^_^;

  ひどい時で一日十回ぐらい emacs が落ちてましたが、耐えて使っていまし
た。そういう意味ではヘビーユーザー。しかし、ただ使っているだけで pgp 
等にはほとんど関心がないので、ふ師匠の後継にはなれそうにないです。

ふ> >>> [Mew-dist : No.07539] にて
ふ> >>> "か" == Kazu Yamamoto (山本和彦) <kazu at example.com> が仰るには..

か> ところで、こういう問題を調べるにはどうすればいいのでしょうか? (その 
か> Emacs の移植者の方はどうやって調べたのでしょうか?)
ふ> デバッグの方法は直接は仰ってませんでしたが、常に closedir() から落ちて
ふ> たとのことなので、PMgdb でしょうね。手に負えんかったわけです(^_^;
ふ> ad-hoc なパッチは随分前に戴いてあるので、問題のある関数の洗い出しはで
ふ> きてると理解しています。
ふ> が、不特定多数の前には流せないので、手がかりが必要でしたら別の場所に振
ふ> ります。

  ad-hoc なパッチというのは、mew が付けた overlay に property を付けて
おいて、バッファ消去 (delete-buffer) 時等に delete-overlay するという
ものです。効果がいまいちはっきりしませんでした(当然かも)。

ふ> ;; 確認求む。なんか変なこと言うてへんでしょうか?&その後新たな展開が
ふ> ;; あったでしょうか?(臨月でそれどころとちゃうのかな)> 中川師

  ふ師匠の情報に付け加えられることは何もなかったのでだんまりを決め込ん
でいましたが、新たな展開があったので出てきました。奥西師匠は私とは出現
時間が全く違うので。

  妻が臨月ってのはあんまり関係ないですな。特に掛け込みでハードウェアを
買い込んだりもしてないですし。あ、知り合いから 6x86MX 買ったか。

ふ> --ふ%gdb の使い方を知らんやつ

  同上。

  closedir() を使う directory-files, file-name-completion,
file-name-all-completions を眺めた感想ですが、OS/2 以外でも、pathname 
に SJIS を許し、directory separator に backslash を使う OS(Windows 系、
OS/2)にはあちこちバグが居るように思います。SJIS のニバイトに 
backslash が来ることを考慮せずに、IS_DIRECTORY_SEP で調べてるとか。そ
れ以前に path が internal coding か SJIS (encoded) かでも混乱があるよ
うで。20.3 でましになってはいるようですが、まだまだ。

os2-emacs-ja ML に流したメールより一部引用
---cut------cut------cut------cut------cut------cut------cut---
  file-name-completion / file-name-all-completions の挙動がおかしいよ
うです。

	(shell-command "ls -lA h:/emx/SJIStest/" (quote (4)))
	total 0
	drwxrwx---        0 Dec 15  1997 aaa十bbb
	drwxrwx---        0 Dec 15  1997 cccソ

  こういう状況下で、
	(file-name-all-completions "" "h:/emx/SJIStest/")
	-> ("ccc\222\245\220" "aaa\222\275\220bbb/" "../" "./")
	(file-name-completion "a" "h:/emx/SJIStest/")
	-> "aaa\222\275\220bbb/"
  となります(\ooo は手で打ち直しました)。どうも SJIS のままのファイ
ル/ディレクトリ名を引き数に Fdirectory_file_name 等を呼んだために「十」
「ソ」の 2 バイト目の '\' が '/' に変換されたためのようです。
---cut------cut------cut------cut------cut------cut------cut---

  directory-files も変なようです。こっちは 20.3 で直っていますが(まだ
バグがあるかも)。

  NT / Win32 (meadow?) でお使いの方、再現するかどうかチェックしていた
だけないでしょうか。問題が起こるようでしたら、パッチを投げます(ここで
いいのかな)。directory-files の部分は見直さないといかんのだけど。私が 
os2の方に投げたパッチに emacs 移植者の方で手を入れてくれたようで、その
差分も見ないといかんし。

ではでは。

--
  中川貴之  (株)日立製作所 サーバ開発本部 N1SG




Mew-dist メーリングリストの案内