David Kastrup <[EMAIL PROTECTED]> writes: > Hugh Lawson <[EMAIL PROTECTED]> writes: > > > David Kastrup <[EMAIL PROTECTED]> writes: > > > >> Hugh Lawson <[EMAIL PROTECTED]> writes: > >> > >> > Debian sarge > >> > Emacs 21.4.1 > >> > > >> > browse-url works fine if firefox is already running. > >> > > >> > But suppose firefox isn't running. > >> > > >> > If I do 'M-x browse-url' and fill in the url, then firefox pops up for > >> > a second and then disappears. The same thing happens with links I > >> > click on in Emacs. > >> > > >> > I think I can imagine a shell script to deal with this, but surely > >> > there is something alread in Emacs. > >> > >> The definition of browse-url-generic in browse-url.el needs to get > >> replaced with: > >> > >> (defun browse-url-generic (url &optional new-window) > >> ;; new-window ignored > >> "Ask the WWW browser defined by `browse-url-generic-program' to load URL. > >> Default to the URL around or before point. A fresh copy of the > >> browser is started up in a new process with possible additional arguments > >> `browse-url-generic-args'. This is appropriate for browsers which > >> don't offer a form of remote control." > >> (interactive (browse-url-interactive-arg "URL: ")) > >> (if (not browse-url-generic-program) > >> (error "No browser defined (`browse-url-generic-program')")) > >> (apply 'call-process browse-url-generic-program nil > >> 0 nil > >> (append browse-url-generic-args (list url)))) > > > > > > I don't understand how this solves my problem. If mozilla-firefox > > is open and running. all is well. If it isn't then there is a > > problem. > > Emacs has several possibilities to start processes. Starting with > call-process and 0 as third argument detaches the process completely > from Emacs. > > Starting the process with start-process, in contrast, leaves the > process associated with Emacs. If the process detaches itself from > the tty, Emacs assumes that it is finished and kills the process > group. This is what happens with new Firefoxes that try to escape the > Emacs tty. > > This is why you need an Elisp function that will use call-process > instead of start-process for starting Firefox if it is supposed to > survive detaching.
Thanks for the explanation, David. I had trouble making it work, so as a trial, I added the following two functions to my ~/.emacs file. Please critique. I did this purely empirically, with no real understanding. (defun browse-url-firefox (url &optional new-window ) ;;new-window ignored "Ask the firefox browser to load URL." (apply 'call-process "firefox" nil 0 nil (list url))) (setq browse-url-browser-function 'browse-url-firefox) -- Hugh Lawson [EMAIL PROTECTED] _______________________________________________ Help-gnu-emacs mailing list Help-gnu-emacs@gnu.org http://lists.gnu.org/mailman/listinfo/help-gnu-emacs