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

Re: use 'dirlist.cgi' when local directory



中川です。

  例によって改ページ継承。



From: Hideyuki SHIRAI (白井秀行) <shirai@rdmg.mgcs.mei.co.jp>
Subject: [emacs-w3m:01039] Re: use 'dirlist.cgi' when local directory
Date: Fri, 01 Jun 2001 13:28:31 +0900 (JST)
Message-ID: <20010601.132831.63216656.shirai@rdmg.mgcs.mei.co.jp>

中川> 	  j:/tmp/SJIStest/emx.h:
	略
白井> ## どこかで見た directory 構成ですね。mew-dist だったかな?

;;   多分 mule-ja か elips だと思います。mew-dist ってことは多分ないの
;; では、と思ったら 1999/02 に mew-dist 07592 近辺でおんなじような事を
;; 議論してますね。進歩がないなあ>自分。

;;   実はあのころから 20.2 原移植者と連絡が取れなくなって… mule-ja 
;; (当時は mule-jp@etl.go.jp)に X-Seqno: 7414 (1999/03/16) としてバ
;; グ一覧を投げたのですが、すくなくとも 20.7 まででは直ってないようで
;; す。もっと強力にフォローしないといけなかったか、指摘だけでパッチを
;; 出さなかったのが敗因か。

;;;;   強力にフォロー:「〜で指摘したバグが直ってません」とやって嫌わ
;;;; れること。パッチ出してれば少しはまし、かな?

中川>   (file-name-all-completions "" "j:/tmp/SJIStest/emx.h")
中川>     -> ("jsawa/" "fff/" "eee/" "ddd表" "ccmail/" "cccソ" "aaa十bbb/" "../" "./")
白井> あ、ごめんなさい。"表" はこうなるのを確かめたんだけど ML に書か
白井> なかったかも。

  やっぱりバグですよね。うん。

中川>   OS/2 でも全部チェックしきれていませんが(環境変数 HOME, TMP 等の 
中川> DECODE やってないのに昨日気付いた:そんなもんに日本語ファイル名使う方
中川> が悪いけど)、生 (SJIS) のファイル名に IS_DIRECTORY_SEP を使っている所
中川> (and file_name_as_directory を呼んでる所)は全て見直す必要があると思
中川> います。
白井> TMP はどうなるかわかりませんが、Meadow は HOME に multi-byte 文
白井> 字を許していないので OK かも :-)
白井> 類似の FAQ で、login-name で日本語っていうのがありますね。これは
白井> その場で却下しています。

  環境変数類は「日本語使うな」に大賛成ですが、ファイル名一般に日本語使
うなというのは Unix 以外ではちとまずいのでは。

中川> ;;   さらに、生のファイル名に CORRECT_DIR_SEPS (dostounix_filename) 掛
中川> ;; けると文字化けが出ます(「表」の 2 byte 目の '\' が '/' に書き替え
中川> ;; られるため)。file_name_as_directory が CORRECT_DIR_SEPS 使っている
中川> ;; ので要注意。と思ったら OS/2 が引っ掛かった 
中川> ;; file-name-all-completions は化けませんでした。まだソースを追いきれ
中川> ;; ていないようです
白井> う〜〜む、普段私は、日本語ファイル/ディレクトリ名問題は、一切ノー
白井> タッチなので、全然わかりません。申し訳ないです。

  file_name_as_directory で CORRECT_DIR_SEPS 呼んでるのは OS/2 だけの
ようです。mew-dist: 07678 にしっかり書いてありました。

白井> # 堀口さんぐらいかなぁ。熱心な方は。

  やはりこういう重箱の隅をつつくようなことは流行らないんでしょうか。
OS/2 だと現在は私だけです。というか他の部分でも C の部分をいじってるの
は私だけかも。 C のコードもチェックして下さい>OS/2 残党の皆さま。

白井> ## 中川さん、Meadow-develop ML 入りませんか ^^;;;

  草葉の影(http://www.ysnb.net/meadow ですか、とりあえず)から見守っ
て行きます。気が向いた時だけ。自分から Medow-develop に入る気はないで
す。スレッド丸ごと cc: されて来るようなことが頻発すれば考えますけど
(この手で wanderlust ML を購読するようになりました)。

;;   ある人の遺言で Meadow には深入りするな… はあんまり関係ないです。

  私は Windows 上で動く C compiler 持ってないです。そういう重要な/楽
しいことは(仕事の Unix 以外では)OS/2 でやることにしてます。OS/2 なら 
emx (gcc) が free であるし。IBM とか Watcom の売り物のコンパイラは持っ
てません(自慢にはなりませんが)。

;;   喧嘩売ってるわけじゃないですよ。OS/2 の方が使用歴が長いだけです。
;; Windows3.1 の頃に OS/2 使い始めて、それ以降も乗り換えようと思わなかっ
;; ただけ。ゲーム、Office Suite 等用として自宅にも Win98 機は飼ってい
;; ます。実は Win98 機の方が新しい器材が入ってます(無駄に CPU 食って
;; ると思っている)。

  OS/2 では dos-to-unix-filename / unix-to-dos-filename は内部関数のみ
で lisp 関数として外に見せてませんが、見せても良いかも。openp を使いた
いという要求もあったし(emacs lisp で相当品をでっちあげましたけど)。
w32-find-executable を見て思い出しました。

白井>  (dos-to-unix-filename
白井>   (encode-coding-string "ddd表\\ddd表" 'japanese-shift-jis))
白井> "ddd\225\\/ddd\225\\"

  "ddd\225//ddd\225/" になりませんか? src/w32.c 見る限りでは SJIS に
ついての考慮がなされているとは思えないのですが。

中川> 	(file-directory-p "e:") 		nil	t
中川> 	(expand-file-name "e:")			e:/TMP	e: ???
中川>   と挙動が違うのが問題かも。
中川>   Meadow ではどのドライブ(c:, Meadow を置いたd:, HOME にした j: だけ
中川> しかチェックしてませんが)でも常にそのドライブの "/" を返すようですね。
白井> うむ? よくわからないのですが、上記の "e:" のテストした環境は
白井> Meadow も HOME も "c:" に入っています。

  Meadow ではその場合でも "c:/" になるようです。私はてっきり 
"c:/WINDOWS" か "c:/win32app/Meadow/1.14/bin" となるものだと思い込んで
いました。

白井> "/" なら、現在いる drive に拘束されます。
白井> (let ((default-directory "c:/tmp"))
白井>   (expand-file-name "/"))
白井> => "c:/"
白井> (let ((default-directory "e:/tmp"))
白井>   (expand-file-name "/"))
白井> => "e:/"
白井> ということですか?

  OS/2 では、私の趣味で(mule 2.3 for OS/2 の頃の動作がこうだったので、
20.2 になって上記の Meadow と同じ動作になった時に追加してもらった)
os2-fix-drive-name という怪しい変数があって、こいつが non-nil だと(本
当は drive を指定できるようにすべきなんでしょうけど)、
	command-line-default-directory
	=> "e:/TMP/"
	(let ((default-directory "c:/tmp"))
		(expand-file-name "/"))
	=> "e:/"
	(let ((default-directory "e:/tmp"))
		(expand-file-name "/"))
	=> "e:/"
  と常に emacs を起動した時のドライブの "/" が返るようにしてあります。

ではでは。

--
  中川貴之  (株)日立製作所 エンタープライズサーバ事業部 Nセ2G