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

Re: w3m-dtree.el で /a/hoge => a:/hoge となるバグ



From: Satoshi TAOKA <taoka@infonets.hiroshima-u.ac.jp> さん曰く
Subject: [emacs-w3m:03920] w3m-dtree.elで /a/hoge => a:/hoge となるバグ
Message-ID: <20020918.155536.92513349.taoka@infonets.hiroshima-u.ac.jp>
Date: Wed, 18 Sep 2002 15:55:36 +0900 (JST)

> 広島大学の田岡と申します。

こんにちは白井です。

> emacs-w3m のDtreeで、ちょっと変な動きをします。
> cvsのものは直っているのかも知れませんが。。。
> 
> 環境はFreeBSDです。
> まず、D で /a/hoge というディレクトリを開こうとすると、a:/hoge を開こうとしま
> す。これは、

なんとまぁ。確かにそうなると思います。

> --- w3m-dtree.el.bak	Wed Sep 18 15:38:32 2002
> +++ w3m-dtree.el	Wed Sep 18 15:38:32 2002
> @@ -81,7 +81,7 @@
>      path))
>  
>  (defsubst w3m-dtree-directory-name (path)
> -  (when (string-match "^/\\(\\([A-Za-z]\\)[|:]?\\|cygdrive/\\([A-Za-z]\\)\\)/" path)
> +  (when (string-match "^/\\(\\([A-Za-z]\\)[|:]+\\|cygdrive/\\([A-Za-z]\\)\\)/" path)
>      (setq path (concat
>  		(or (match-string 2 path)
>  		    (match-string 3 path))
> 
> で、開けるようになりました。これで良いのでしょうか?

Windows 等を考えると、ちょっと違います。

> 「?」は0個でもマッチするのですか?

簡単に説明しますと、? は一回一致するかしないか、です。例をあげると、

abc? => ab, abc
abc* => ab, abc, abcc, abccc, ....
abc+ => abc, abcc, abccc, ....

が一致するようになります。すっかり忘れていたので、復習したところ、
Windows などのドライブレターを持っている system では

file:///c|/users/foo/html/hoge.html
file:///C:/users/foo/html/hoge.html
file:///c/users/foo/html/hoge.html
file:///cygdrive/c/users/foo/html/hoge.html

がすべて、c:/users/... をさすようにするために、ご指摘の変換が入っ
ています。田岡さんの形式を救うには、

(defvar w3m-treat-drive-letter (memq system-type '(windows-nt OS/2 emx))

みたいな変数(定数?)を定義して、UNIX では余分な変換をしないよう
にすることが必要じゃないかな。

> さらに、emacs-w3m でローカルのファイル/a/hoge/foo.txt を開いていて、E 
> で編集しようとすると、正しく開きません。
> 
> ~/.w3m/a:/hoge/foo.txt
> 
> というファイルを開こうとしています。これは、上の修正では直りません。ど
> の分なのか余り調べていません。

こちらも含めて、あとで似たことをやっている箇所を調べておきます。

# ちと忙しいのでどなたかの行為を制限するものではありません ^^;;;

アンテナ系はどなたか御願いします。(_ _)

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