all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#19884: 24.3; Unimplemented `url-handler' functions
@ 2015-02-17  5:19 Eli Barzilay
  2015-02-17 21:53 ` Glenn Morris
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Barzilay @ 2015-02-17  5:19 UTC (permalink / raw)
  To: 19884

I'm not sure what the intended use of `url-handler-mode' is, or how to
get the `url-dav' thing to work -- but it seems that the only thing
that stands in my way of loading a URL in Emacs is these two functions
from "url-handlers.el": `url-file-name-completion' and
`url-file-name-all-completions', both just throw an "Unimplemented"
error.

I have redefined them with trivial versions:

  (defun url-file-name-completion (_url _directory &optional _predicate) t)
  (defun url-file-name-all-completions (file _directory) (list file))

and with that I can now load remote files via HTTP.  This is obviously
limited in a way that makes a proper DAV client (with a matching
server) better, but I suspect that for most people this is irrelevant,
and I don't see any explanation why the error-throwing is needed.  (It
seems that the url-dav thing has its own functions anyway.)

(I'm leaving the following information because of all those things
that I'm not sure about, as I said in the beginning.)


In GNU Emacs 24.3.1 (i386-mingw-nt6.2.9200)
 of 2013-03-17 on MARVIN
Windowing system distributor `Microsoft Corp.', version 6.2.9200
Configured using:
 `configure --with-gcc (4.7) --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include
 -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include
 -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1252
  default enable-multibyte-characters: t

Major mode: Text

Minor modes in effect:
  desktop-save-mode: t
  cua-mode: t
  display-time-mode: t
  minibuffer-electric-default-mode: t
  url-handler-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Features:
(shadow mailalias vm-reply vm-rfaddons vm-menu vm-window vm-toolbar
vm-folder vm-mime vm-undo vm-virtual vm-summary-faces vm-summary
vm-mouse vm-page vm-motion vm-minibuf vm-message vm-misc vm-macro
vm-autoloads vm-vars vm-version vm emacsbug message format-spec rfc822
mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mail-utils misearch multi-isearch view apropos help-mode desktop
filladapt scroll-in-place cua-base time edmacro kmacro minibuf-eldef
electric paren mic-paren whitespace jka-compr uniquify warnings advice
help-fns cl-lib advice-preload cal-x cal-menu easymenu calendar
cal-loaddefs netrc url-handlers url-parse auth-source eieio byte-opt
bytecomp byte-compile cconv gnus-util mm-util mail-prsvr
password-cache url-vars time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table
w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
make-network-process w32 multi-tty emacs)

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





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#19884: 24.3; Unimplemented `url-handler' functions
  2015-02-17  5:19 bug#19884: 24.3; Unimplemented `url-handler' functions Eli Barzilay
@ 2015-02-17 21:53 ` Glenn Morris
  2015-02-17 23:10   ` Eli Barzilay
  0 siblings, 1 reply; 7+ messages in thread
From: Glenn Morris @ 2015-02-17 21:53 UTC (permalink / raw)
  To: Eli Barzilay; +Cc: 19884


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.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#19884: 24.3; Unimplemented `url-handler' functions
  2015-02-17 21:53 ` Glenn Morris
@ 2015-02-17 23:10   ` Eli Barzilay
  2015-02-18  0:26     ` Alexis
                       ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Eli Barzilay @ 2015-02-17 23:10 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 19884

On Tue, Feb 17, 2015 at 4:53 PM, Glenn Morris <rgm@gnu.org> 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!





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#19884: 24.3; Unimplemented `url-handler' functions
  2015-02-17 23:10   ` Eli Barzilay
@ 2015-02-18  0:26     ` Alexis
  2015-02-18  1:51     ` Eli Barzilay
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Alexis @ 2015-02-18  0:26 UTC (permalink / raw)
  To: 19884


On 2015-02-18T10:10:25+1100, Eli Barzilay said:

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

 EB> * Start a bare emacs: emacs -Q

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

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

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

 EB> I get an "Unimplemented" error

With a manually compiled Emacs 24.4.1 on Debian Wheezy(+updates) 
x86_64, and following the above steps, i'm unable to reproduce 
this error. (Instead i get an unrendered XHTML document in a 
buffer named "barzilay.org".)

Might it perhaps have been an issue with 24.3 that was fixed by 
24.4?


Alexis.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#19884: 24.3; Unimplemented `url-handler' functions
  2015-02-17 23:10   ` Eli Barzilay
  2015-02-18  0:26     ` Alexis
@ 2015-02-18  1:51     ` Eli Barzilay
  2015-02-18  1:58     ` Eli Barzilay
  2015-02-18  7:46     ` Glenn Morris
  3 siblings, 0 replies; 7+ messages in thread
From: Eli Barzilay @ 2015-02-18  1:51 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 19884

On Tue, Feb 17, 2015 at 6:10 PM, Eli Barzilay <eli@barzilay.org> wrote:
> On Tue, Feb 17, 2015 at 4:53 PM, Glenn Morris <rgm@gnu.org> 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!



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





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#19884: 24.3; Unimplemented `url-handler' functions
  2015-02-17 23:10   ` Eli Barzilay
  2015-02-18  0:26     ` Alexis
  2015-02-18  1:51     ` Eli Barzilay
@ 2015-02-18  1:58     ` Eli Barzilay
  2015-02-18  7:46     ` Glenn Morris
  3 siblings, 0 replies; 7+ messages in thread
From: Eli Barzilay @ 2015-02-18  1:58 UTC (permalink / raw)
  To: Glenn Morris, Stefan Monnier; +Cc: 19884

On Tue, Feb 17, 2015 at 6:10 PM, Eli Barzilay <eli@barzilay.org> wrote:
> [...]

*sigh*

I just looked at the updated source tree, and the current code is
different, and in fact, it's doing something close to what I suggested.
Marked as a reply to bug #14806 which is pretty much an identical
description to mine, and fixed by Stefan Monnier (CCed).  So this can be
closed as a duplicate of that one.

But one note is that as far as I can tell, my version is looks more
correct, since the doc of `file-name-completion' says:

  If there is only one and file matches it exactly, returns t.

and the description of `file-name-all-completions' make it seem like
returning a list with the url is more correct than returning nil.

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





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#19884: 24.3; Unimplemented `url-handler' functions
  2015-02-17 23:10   ` Eli Barzilay
                       ` (2 preceding siblings ...)
  2015-02-18  1:58     ` Eli Barzilay
@ 2015-02-18  7:46     ` Glenn Morris
  3 siblings, 0 replies; 7+ messages in thread
From: Glenn Morris @ 2015-02-18  7:46 UTC (permalink / raw)
  To: 19884-done

Version: 24.4

Eli Barzilay wrote:

>     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

Thanks. By experiment, this was present in 24.3 but fixed in 24.4.





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-02-18  7:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-17  5:19 bug#19884: 24.3; Unimplemented `url-handler' functions Eli Barzilay
2015-02-17 21:53 ` Glenn Morris
2015-02-17 23:10   ` Eli Barzilay
2015-02-18  0:26     ` Alexis
2015-02-18  1:51     ` Eli Barzilay
2015-02-18  1:58     ` Eli Barzilay
2015-02-18  7:46     ` Glenn Morris

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.