[Date Prev][Date Next][Thread Prev][Thread Next][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)