Subject: bug#19884: 24.3; Unimplemented `url-handler' functions

From: Eli Barzilay <[email-masked]>
Date: Tue, 17 Feb 2015 18:10:25 -0500

On Tue, Feb 17, 2015 at 4:53 PM, Glenn Morris <[email-masked]> wrote:
>
> Please could you say exactly what you are trying to do.  It's
> something to do with "loading a URL in Emacs", but you don't say
> precisely how. I think a complete recipe starting from emacs -Q would
> be helpful.

You're right -- I was too lazy to pinpoint the problem, but now I did
it.  Here's a complete and exact sequence:

* Start a bare emacs:
    emacs -Q

* Change this option using `set-variable' or a plain `setq':
    (setq read-file-name-completion-ignore-case t)

* Activate the url-handler mode
    M-x url-handler-mode RET

* Try to load some URL:
    C-x C-f C-a C-k http://barzilay.org/ RET

I get an "Unimplemented" error, because the ignore-case option makes it
do one completion before loading the file -- and that fails since the
respective url-handler functions throw up.  If I make them trivially
accept the curret path things work fine.

I find that ...-completion-ignore-case option very useful (even in
Linux), and I don't think that there's a reasonable way to avoid that
completion-before-accepting-a-name behavior to get it to work.  To have
a less-impactful change, the url-handler functions could throw up
*unless* this option is set, but I don't see any reasonable use for that
error.  In fact, since HTTP always has some content to send you for any
URL -- as long as there is a server on the specified address/port you'll
get some 404 document -- and when dealing with just plain HTTP (no DAV)
it makes sense to just get you that 404 page.

(And hopefully the utility of having the url-handler feature on is
clear: saving you a silly save-to-temp-file-then-open-in-emacs
roundtrip, and allowing you to just open it directly.)

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!