unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#4531: 23.1; browse-url with unknown func in browse-url-browser-function
@ 2009-09-23  1:22 ` Kevin Ryde
  2009-10-02  7:20   ` bug#4531: marked as done (23.1; browse-url with unknown func in browse-url-browser-function) Emacs bug Tracking System
       [not found]   ` <handler.4531.D4531.125446747923800.notifdone@emacsbugs.donarmstrong.com>
  0 siblings, 2 replies; 3+ messages in thread
From: Kevin Ryde @ 2009-09-23  1:22 UTC (permalink / raw)
  To: bug-gnu-emacs

[-- Attachment #1: Type: text/plain, Size: 919 bytes --]

If browse-url-browser-function is an unknown symbol the error from
browse-url isn't very helpful.  Eg.

    M-: (setq browse-url-browser-function 'FOOBAR-browse-url)
    M-x browse-url http://www.gnu.org

    => Wrong type argument: listp, FOOBAR-browse-url

I hoped it would say the problem is the symbol is unbound, not that it's
supposed to be a list.  (The value can be a list of course, but if the
value is a symbol then it's surely meant to be the name of a function.)
Sending symbols down the `apply' leg of `browse-url' would give

    => Symbol's function definition is void: FOOBAR-browse-url

which I think is a much better.


2009-09-23  Kevin Ryde  <user42@zip.com.au>

	* net/browse-url.el (browse-url): Pass any symbol in
	browse-url-browser-function to `apply', since if you've mistakenly
	put an unbound symbol then the error from apply is much clearer
	that the function you wanted is not available.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: browse-url.el.symbolp.diff --]
[-- Type: text/x-diff, Size: 809 bytes --]

--- browse-url.el.~1.80.~	2009-09-23 11:08:37.000000000 +1000
+++ browse-url.el	2009-09-23 11:16:22.000000000 +1000
@@ -778,7 +778,11 @@
     ;; which may not even exist any more.
     (if (stringp (frame-parameter (selected-frame) 'display))
         (setenv "DISPLAY" (frame-parameter (selected-frame) 'display)))
-    (if (functionp browse-url-browser-function)
+    ;; send any symbol to `apply', not just fboundp ones, since
+    ;; void-function from apply is clearer than wrong-type-argument
+    ;; from dolist
+    (if (or (symbolp browse-url-browser-function)
+            (functionp browse-url-browser-function))
         (apply browse-url-browser-function url args)
       ;; The `function' can be an alist; look down it for first match
       ;; and apply the function (which might be a lambda).

[-- Attachment #3: Type: text/plain, Size: 1076 bytes --]



In GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.16.5)
 of 2009-08-03 on raven, modified by Debian
configured using `configure  '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_AU
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-1-unix
  default-enable-multibyte-characters: t

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

* bug#4531: marked as done (23.1; browse-url with unknown func in browse-url-browser-function)
  2009-09-23  1:22 ` bug#4531: 23.1; browse-url with unknown func in browse-url-browser-function Kevin Ryde
@ 2009-10-02  7:20   ` Emacs bug Tracking System
       [not found]   ` <handler.4531.D4531.125446747923800.notifdone@emacsbugs.donarmstrong.com>
  1 sibling, 0 replies; 3+ messages in thread
From: Emacs bug Tracking System @ 2009-10-02  7:20 UTC (permalink / raw)
  To: Glenn Morris

[-- Attachment #1: Type: text/plain, Size: 930 bytes --]

Your message dated Fri, 02 Oct 2009 03:11:17 -0400
with message-id <x2eipmuv6y.fsf@fencepost.gnu.org>
and subject line Re: bug#4531: 23.1; browse-url with unknown func in browse-url-browser-function
has caused the Emacs bug report #4531,
regarding 23.1; browse-url with unknown func in browse-url-browser-function
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@emacsbugs.donarmstrong.com
immediately.)


-- 
4531: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=4531
Emacs Bug Tracking System
Contact owner@emacsbugs.donarmstrong.com with problems

[-- Attachment #2: Type: message/rfc822, Size: 5335 bytes --]

[-- Attachment #2.1.1: Type: text/plain, Size: 919 bytes --]

If browse-url-browser-function is an unknown symbol the error from
browse-url isn't very helpful.  Eg.

    M-: (setq browse-url-browser-function 'FOOBAR-browse-url)
    M-x browse-url http://www.gnu.org

    => Wrong type argument: listp, FOOBAR-browse-url

I hoped it would say the problem is the symbol is unbound, not that it's
supposed to be a list.  (The value can be a list of course, but if the
value is a symbol then it's surely meant to be the name of a function.)
Sending symbols down the `apply' leg of `browse-url' would give

    => Symbol's function definition is void: FOOBAR-browse-url

which I think is a much better.


2009-09-23  Kevin Ryde  <user42@zip.com.au>

	* net/browse-url.el (browse-url): Pass any symbol in
	browse-url-browser-function to `apply', since if you've mistakenly
	put an unbound symbol then the error from apply is much clearer
	that the function you wanted is not available.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2.1.2: browse-url.el.symbolp.diff --]
[-- Type: text/x-diff, Size: 809 bytes --]

--- browse-url.el.~1.80.~	2009-09-23 11:08:37.000000000 +1000
+++ browse-url.el	2009-09-23 11:16:22.000000000 +1000
@@ -778,7 +778,11 @@
     ;; which may not even exist any more.
     (if (stringp (frame-parameter (selected-frame) 'display))
         (setenv "DISPLAY" (frame-parameter (selected-frame) 'display)))
-    (if (functionp browse-url-browser-function)
+    ;; send any symbol to `apply', not just fboundp ones, since
+    ;; void-function from apply is clearer than wrong-type-argument
+    ;; from dolist
+    (if (or (symbolp browse-url-browser-function)
+            (functionp browse-url-browser-function))
         (apply browse-url-browser-function url args)
       ;; The `function' can be an alist; look down it for first match
       ;; and apply the function (which might be a lambda).

[-- Attachment #2.1.3: Type: text/plain, Size: 1076 bytes --]



In GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.16.5)
 of 2009-08-03 on raven, modified by Debian
configured using `configure  '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_AU
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-1-unix
  default-enable-multibyte-characters: t

[-- Attachment #3: Type: message/rfc822, Size: 1546 bytes --]

From: Glenn Morris <rgm@gnu.org>
To: 4531-done@emacsbugs.donarmstrong.com
Subject: Re: bug#4531: 23.1; browse-url with unknown func in browse-url-browser-function
Date: Fri, 02 Oct 2009 03:11:17 -0400
Message-ID: <x2eipmuv6y.fsf@fencepost.gnu.org>


Thanks; applied.

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

* bug#4531: closed by Glenn Morris <rgm@gnu.org> (Re: bug#4531: 23.1; browse-url with unknown func in browse-url-browser-function)
       [not found]   ` <handler.4531.D4531.125446747923800.notifdone@emacsbugs.donarmstrong.com>
@ 2009-10-08  0:14     ` Kevin Ryde
  0 siblings, 0 replies; 3+ messages in thread
From: Kevin Ryde @ 2009-10-08  0:14 UTC (permalink / raw)
  To: 4531

[-- Attachment #1: Type: text/plain, Size: 236 bytes --]

Glenn Morris <rgm@gnu.org> writes:
>
> applied

Actually Stefan proposed "consp && not functionp" to identify the alist
case.  I might apply something like below when I double check it.

(It's all been in slow motion for me lately :-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: browse-url.el.consp.diff --]
[-- Type: text/x-diff, Size: 1095 bytes --]

--- browse-url.el.~1.83.~	2009-10-08 11:09:10.000000000 +1100
+++ browse-url.el	2009-10-08 11:09:57.000000000 +1100
@@ -780,9 +780,9 @@
         (setenv "DISPLAY" (frame-parameter (selected-frame) 'display)))
     ;; Send any symbol to `apply', not just fboundp ones, since void-function
     ;; from apply is clearer than wrong-type-argument from dolist.
-    (if (or (symbolp browse-url-browser-function)
-            (functionp browse-url-browser-function))
-        (apply browse-url-browser-function url args)
+    (if (and (consp browse-url-browser-function)
+	     (not (functionp browse-url-browser-function)))
+
       ;; The `function' can be an alist; look down it for first match
       ;; and apply the function (which might be a lambda).
       (catch 'done
@@ -791,7 +791,9 @@
             (apply (cdr bf) url args)
             (throw 'done t)))
         (error "No browse-url-browser-function matching URL %s"
-               url)))))
+               url))
+
+        (apply browse-url-browser-function url args))))
 
 ;;;###autoload
 (defun browse-url-at-point (&optional arg)

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

end of thread, other threads:[~2009-10-08  0:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <x2eipmuv6y.fsf@fencepost.gnu.org>
2009-09-23  1:22 ` bug#4531: 23.1; browse-url with unknown func in browse-url-browser-function Kevin Ryde
2009-10-02  7:20   ` bug#4531: marked as done (23.1; browse-url with unknown func in browse-url-browser-function) Emacs bug Tracking System
     [not found]   ` <handler.4531.D4531.125446747923800.notifdone@emacsbugs.donarmstrong.com>
2009-10-08  0:14     ` bug#4531: closed by Glenn Morris <rgm@gnu.org> (Re: bug#4531: 23.1; " Kevin Ryde

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).