[mew-dist 26385] Re: drag & drop on Meadow
INOUE Tomohiro
ml at example.com
2005年 5月 30日 (月) 22:43:55 JST
こんにちは、井上です。
Motohiko Minakuchi <zxcv3794 at example.com> wrote:
> > とりあえず、マージしました。
> netinstall した Meadow-2.10-dev (ASAGAO) で試したところ、
> void-function dnd-get-local-file-name と言われてしまいました。
Meadow 3 (= Emacs 22) だと dnd-get-local-file-name が定義されているの
ですが Meadow 2.x (= Emacs 21) にはまだ無いので、このままだと 2.x の場
合ファイルを drop した際にエラーになってしまいます。
なのでとりあえず、mew-key.el は
(defun mew-draft-share-keymap (symmap)
(if (and (featurep 'meadow) (featurep 'dnd))
(define-key (symbol-value symmap) [drag-n-drop] 'mew-draft-dnd-for-meadow))
...
にした方がよいと思います。
Meadow 2.2 でも dnd-get-local-file-name を Meadow 3 から借りて定義して
おけば問題なく動くようですが、Mew の中でこんなもの定義してよいのやら判
断つきかねますので、対応はお任せいたします。m(__)m
個人的には .emacs に書いておくのでも十分満足です。
(if (and (featurep 'meadow) (not (featurep 'dnd)))
(defun dnd-get-local-file-name (uri &optional must-exist)
"Return file name converted from file:/// or file: syntax.
URI is the uri for the file. If MUST-EXIST is given and non-nil,
only return non-nil if the file exists.
Return nil if URI is not a local file."
(let ((f (cond ((string-match "^file:///" uri) ; XDND format.
(substring uri (1- (match-end 0))))
((string-match "^file:" uri) ; Old KDE, Motif, Sun
(substring uri (match-end 0))))))
(when (and f must-exist)
(let* ((decoded-f (decode-coding-string
f
(or file-name-coding-system
default-file-name-coding-system)))
(try-f (if (file-readable-p decoded-f) decoded-f f)))
(when (file-readable-p try-f) try-f))))))
-- 井上 知洋
Mew-dist メーリングリストの案内