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

Re: use 'dirlist.cgi' when local directory



From: NAKAGAWA Takayuki <tknakaga@kanagawa.hitachi.co.jp> さん曰く
Subject: [emacs-w3m:01033] Re: use 'dirlist.cgi' when local directory
Message-ID: <200106010303.MAA29874@kanagw970.kanagawa.hitachi.co.jp>
Date: Fri, 01 Jun 2001 12:03:59 +0900 (JST)

(あまり意味がないと思いますが)改ページ継承 ^^;;;


中川> 	  j:/tmp/SJIStest/emx.h:
中川> 	  total 0
中川> 	  drwxrwx---        0 Apr 20 11:16 .
中川> 	  drwxrwx---        0 May 26  2000 ..
中川> 	  drwxrwx---        0 Apr 20 11:16 aaa十bbb
中川> 	  drwxrwx---        0 Apr 20 11:16 cccソ
中川> 	  drwxrwx---        0 Apr 20 11:16 ccmail
中川> 	  drwxrwx---        0 Apr 20 11:16 ddd表
中川> 	  drwxrwx---        0 Apr 20 11:16 eee
中川> 	  drwxrwx---        0 Apr 20 11:16 fff
中川> 	  drwxrwx---        0 Apr 20 11:17 jsawa

## どこかで見た directory 構成ですね。mew-dist だったかな?

中川>   (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 かも :-)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Meadow をディレクトリの名前が ASCII 文字でない文字や空白を含む           !
! ディレクトリにインストールしないでください。                             !
! おそらく、そのようなディレクトリにもインストールできると思いますが、     !
! その場合の動作は検証していません。同様に、ホームディレクトリに           !
! ASCII 文字でない文字を含むディレクトリを指定しないでください。           !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

類似の FAQ で、login-name で日本語っていうのがありますね。これは
その場で却下しています。

中川> ;;   さらに、生のファイル名に CORRECT_DIR_SEPS (dostounix_filename) 掛
中川> ;; けると文字化けが出ます(「表」の 2 byte 目の '\' が '/' に書き替え
中川> ;; られるため)。file_name_as_directory が CORRECT_DIR_SEPS 使っている
中川> ;; ので要注意。と思ったら OS/2 が引っ掛かった 
中川> ;; file-name-all-completions は化けませんでした。まだソースを追いきれ
中川> ;; ていないようです

う〜〜む、普段私は、日本語ファイル/ディレクトリ名問題は、一切ノー
タッチなので、全然わかりません。申し訳ないです。

# 堀口さんぐらいかなぁ。熱心な方は。
## 中川さん、Meadow-develop ML 入りませんか ^^;;;

(dos-to-unix-filename "ddd表\\ddd表")
"ddd表/ddd表"

(unix-to-dos-filename "ddd表/ddd表")
"ddd表\\ddd表"

(decode-coding-string
 (dos-to-unix-filename
  (encode-coding-string "ddd表\\ddd表" 'japanese-shift-jis))
 'japanese-shift-jis)
"ddd表/ddd表"

(decode-coding-string
 (unix-to-dos-filename
  (encode-coding-string "ddd表\\ddd表" 'japanese-shift-jis))
 'japanese-shift-jis)
"ddd表\\ddd表"

ああ、こういうことですか?

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

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

中川> 	(file-directory-p "e:") 		nil	t
中川> 	(expand-file-name "e:")			e:/TMP	e: ???
中川>   と挙動が違うのが問題かも。

白井> (file-directory-p "e:") t
白井> (expand-file-name "e:") "e:/"

中川>   Meadow ではどのドライブ(c:, Meadow を置いたd:, HOME にした j: だけ
中川> しかチェックしてませんが)でも常にそのドライブの "/" を返すようですね。

うむ? よくわからないのですが、上記の "e:" のテストした環境は
Meadow も HOME も "c:" に入っています。

"/" なら、現在いる drive に拘束されます。

(let ((default-directory "c:/tmp"))
  (expand-file-name "/"))
=> "c:/"

(let ((default-directory "e:/tmp"))
  (expand-file-name "/"))
=> "e:/"

ということですか?

-- 
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)