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

thing-at-point vs ffap (was: URLs wrapped according to RFC1738)



白井です。Wanderlust の英語の方の ML に流れていた

From: "Felix E. Klee" <felix.klee@inka.de> さん曰く
Subject: URLs wrapped according to RFC1738
Message-ID: <878y59jaox.wl%felix.klee@inka.de>
Date: Mon, 28 Feb 2005 10:27:58 +0100

> I found that URLs wrapped according to RFC1738 are not interpreted
> correctly by Wanderlust 2.12.2.  Take the following example quoted from
> that RFC:
 <<snip>>
> Wanderlust ignores the continuation of a URL after a line break.

なのを読んでちょっと試してみたのですが、

(let ((buf (current-buffer))
      tap ffap)
  (with-temp-buffer
    (insert "
     Yes, Jim, I found it under <URL:ftp://info.cern.ch/pub/www/doc;
     type=d> but you can probably pick it up from <URL:ftp://ds.in
     ternic.net/rfc>.  Note the warning in <URL:http://ds.internic.
     net/instructions/overview.html#WARNING>.")
    (goto-char (point-min))
    (while (search-forward "//" nil t)
      (setq tap (thing-at-point 'url))
      (setq ffap (ffap-url-at-point))
      (with-current-buffer buf
	(insert (format " tap:%s\nffap:%s\n\n" tap ffap))))))
=>
 tap:ftp://info.cern.ch/pub/www/doc;type=d
ffap:ftp://info.cern.ch/pub/www/doc

 tap:ftp://ds.internic.net/rfc
ffap:ftp://ds.in

 tap:http://ds.internic.net/instructions/overview.html#WARNING
ffap:http://ds.internic

(thing-at-point 'url) は上記の表記をちゃんと扱えたのに対して、
(ffap-url-at-point) はダメでした。

現状 w3m-url-at-point() は ffap があったら ffap-url-at-point を
つかうので、w3m ではダメということになります。

# Wanderlust がだめなのもこれが原因?

ffap を使うようになったのは

From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> さん曰く
Subject: [emacs-w3m:01769] Re: M-x w3m
Message-ID: <20011016103929L.1000@pine.kuee.kyoto-u.ac.jp>
Date: Tue, 16 Oct 2001 10:39:28 +0900

> 少し検討してみたのですが、w3m-input-url() の中で初期値を決定するために
> 呼び出されている (thing-at-point 'url) の精度があまり良くないことが原
> 因だと思います。試してみると、(ffap-url-at-point) の方が精度が良さそう
> なので、使える場合はそちらを使うように変更しました。

ぐらいからなのですが、thing-at-point と ffap-url-at-point どっち
がよいのでしょうかねぇ、というのをもう一回考えた方がよいのかもし
れません。

両方併用で戻り値の文字列の長い方を採用しちゃうとか ^^;;;

# 個人的には、ずーーーーーーと thing-at-point を使っていて困った
# ことはないのですが、よくよく考えたら、相当昔から、
# (setq thing-at-point-url-path-regexp "[-~/A-Za-z0-9_.${}#%,:@?%&|=+]+")
# と書き換えていました。

-- 
白井秀行 (mailto:shirai@meadowy.org)