Subject: bug#8917: closed (Re: bug#8917: browse-url-xdg-open can fail to return)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 22 Jun 2011 16:46:02 +0000

Your bug report

#8917: browse-url-xdg-open can fail to return

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
8917: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8917
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#8917: browse-url-xdg-open can fail to return
From: Jan Djärv <[email-masked]>
To: Lawrence Mitchell <[email-masked]>
Cc: [email-masked]
Date: Wed, 22 Jun 2011 18:45:30 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello.

That works, applied.

Thanks,

	Jan D.

2011-06-22 11:18, Lawrence Mitchell skrev:
> In GNU Emacs 24.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.4)
>   of 2011-06-06 on e4300lm
> Windowing system distributor `The X.Org Foundation', version 11.0.11001000
> configured using `configure '-C''
>
> If Emacs uses browse-url-xdg-open to open URLs, and the browser
> is /not/ already running, browse-url starts a new browser process
> and then sits waiting for it to complete.  Control does not
> return to Emacs until the browser is quit.
>
> I believe this is an unintended side-effect of this change:
>
> | 2010-10-08  Andreas Schwab<[email-masked]>
>
> | 	* net/browse-url.el (browse-url-xdg-open): Remove use of /bin/sh.
>
>
> I think the correct fix is to just discard output from the
> command and return immediately (nohup is then also not needed).
> Here's a patch:
>
> --8<---------------cut here---------------start------------->8---
>> From c7183b3a4886a65951b155b1e0d57e0b50e19504 Mon Sep 17 00:00:00 2001
> From: Lawrence Mitchell<[email-masked]>
> Date: Wed, 22 Jun 2011 10:08:29 +0100
> Subject: [PATCH] browse-url: Don't wait for xdg-open to return
>
> * net/browse-url.el (browse-url-xdg-open): Use 0, rather than nil
> BUFFER in call-process.
> ---
>   lisp/ChangeLog         |    5 +++++
>   lisp/net/browse-url.el |    2 +-
>   2 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/lisp/ChangeLog b/lisp/ChangeLog
> index 1ab91cf..4511dbc 100644
> --- a/lisp/ChangeLog
> +++ b/lisp/ChangeLog
> @@ -1,3 +1,8 @@
> +2011-06-22  Lawrence Mitchell<[email-masked]>
> +
> +	* net/browse-url.el (browse-url-xdg-open): Use 0, rather than nil
> +	BUFFER in call-process.
> +
>   2011-06-21  Tim Harper<[email-masked]>
>
>   	* term/ns-win.el (ns-initialize-window-system): set
> diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
> index c1ec3f0..d9e6827 100644
> --- a/lisp/net/browse-url.el
> +++ b/lisp/net/browse-url.el
> @@ -958,7 +958,7 @@ Galeon, Konqueror, Netscape, Mosaic, Lynx in an xterm, and then W3."
>   ;;;###autoload
>   (defun browse-url-xdg-open (url&optional new-window)
>     (interactive (browse-url-interactive-arg "URL: "))
> -  (call-process "nohup" nil nil nil "xdg-open" url))
> +  (call-process "xdg-open" nil 0 nil url))
>
>   ;;;###autoload
>   (defun browse-url-netscape (url&optional new-window)
>
> --8<---------------cut here---------------end--------------->8---
>
>
>

Subject: browse-url-xdg-open can fail to return
From: Lawrence Mitchell <[email-masked]>
To: [email-masked]
Date: Wed, 22 Jun 2011 10:18:28 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

In GNU Emacs 24.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.4)
 of 2011-06-06 on e4300lm
Windowing system distributor `The X.Org Foundation', version 11.0.11001000
configured using `configure '-C''

If Emacs uses browse-url-xdg-open to open URLs, and the browser
is /not/ already running, browse-url starts a new browser process
and then sits waiting for it to complete.  Control does not
return to Emacs until the browser is quit.

I believe this is an unintended side-effect of this change:

| 2010-10-08  Andreas Schwab  <[email-masked]>

| 	* net/browse-url.el (browse-url-xdg-open): Remove use of /bin/sh.

I think the correct fix is to just discard output from the
command and return immediately (nohup is then also not needed).
Here's a patch:

--8<---------------cut here---------------start------------->8---
>From c7183b3a4886a65951b155b1e0d57e0b50e19504 Mon Sep 17 00:00:00 2001
From: Lawrence Mitchell <[email-masked]>
Date: Wed, 22 Jun 2011 10:08:29 +0100
Subject: [PATCH] browse-url: Don't wait for xdg-open to return

* net/browse-url.el (browse-url-xdg-open): Use 0, rather than nil
BUFFER in call-process.
---
 lisp/ChangeLog         |    5 +++++
 lisp/net/browse-url.el |    2 +-
 2 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1ab91cf..4511dbc 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-22  Lawrence Mitchell  <[email-masked]>
+
+	* net/browse-url.el (browse-url-xdg-open): Use 0, rather than nil
+	BUFFER in call-process.
+
 2011-06-21  Tim Harper  <[email-masked]>
 
 	* term/ns-win.el (ns-initialize-window-system): set
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index c1ec3f0..d9e6827 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -958,7 +958,7 @@ Galeon, Konqueror, Netscape, Mosaic, Lynx in an xterm, and then W3."
 ;;;###autoload
 (defun browse-url-xdg-open (url &optional new-window)
   (interactive (browse-url-interactive-arg "URL: "))
-  (call-process "nohup" nil nil nil "xdg-open" url))
+  (call-process "xdg-open" nil 0 nil url))
 
 ;;;###autoload
 (defun browse-url-netscape (url &optional new-window)

--8<---------------cut here---------------end--------------->8---