From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: =?UTF-8?Q?=E7=A9=8D=E4=B8=B9=E5=B0=BC?= Dan Jacobson Newsgroups: gmane.emacs.bugs Subject: bug#30981: Document how to use $BROWSER for external browser Date: Thu, 29 Mar 2018 10:22:29 +0800 Message-ID: <878taboc2i.fsf_-_@jidanni.org> References: <87vadi483t.fsf@jidanni.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1522290075 29376 195.159.176.226 (29 Mar 2018 02:21:15 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 29 Mar 2018 02:21:15 +0000 (UTC) Cc: Katsumi Yamaoka To: 30981@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Mar 29 04:21:11 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f1NBe-0007Wk-SF for geb-bug-gnu-emacs@m.gmane.org; Thu, 29 Mar 2018 04:21:11 +0200 Original-Received: from localhost ([::1]:35864 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f1NDi-0003DC-8J for geb-bug-gnu-emacs@m.gmane.org; Wed, 28 Mar 2018 22:23:18 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44281) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f1NDV-0003CY-HG for bug-gnu-emacs@gnu.org; Wed, 28 Mar 2018 22:23:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f1NDS-00036f-Bo for bug-gnu-emacs@gnu.org; Wed, 28 Mar 2018 22:23:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:49901) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f1NDS-00036b-7T for bug-gnu-emacs@gnu.org; Wed, 28 Mar 2018 22:23:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1f1NDS-0000rK-1z for bug-gnu-emacs@gnu.org; Wed, 28 Mar 2018 22:23:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: =?UTF-8?Q?=E7=A9=8D=E4=B8=B9=E5=B0=BC?= Dan Jacobson Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 29 Mar 2018 02:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 30981 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.15222901683255 (code B ref -1); Thu, 29 Mar 2018 02:23:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 29 Mar 2018 02:22:48 +0000 Original-Received: from localhost ([127.0.0.1]:57791 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f1NDE-0000qP-F3 for submit@debbugs.gnu.org; Wed, 28 Mar 2018 22:22:48 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:53232) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f1NDC-0000q1-VG for submit@debbugs.gnu.org; Wed, 28 Mar 2018 22:22:47 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f1ND6-000306-Mr for submit@debbugs.gnu.org; Wed, 28 Mar 2018 22:22:41 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:33616) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f1ND6-0002zy-JA for submit@debbugs.gnu.org; Wed, 28 Mar 2018 22:22:40 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44194) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f1ND5-00033m-9E for bug-gnu-emacs@gnu.org; Wed, 28 Mar 2018 22:22:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f1ND2-0002yJ-49 for bug-gnu-emacs@gnu.org; Wed, 28 Mar 2018 22:22:39 -0400 Original-Received: from homie.mail.dreamhost.com ([208.97.132.208]:32797 helo=homiemail-a99.g.dreamhost.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f1ND1-0002xT-RR for bug-gnu-emacs@gnu.org; Wed, 28 Mar 2018 22:22:36 -0400 Original-Received: from homiemail-a99.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a99.g.dreamhost.com (Postfix) with ESMTP id A0861D3E068; Wed, 28 Mar 2018 19:22:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=jidanni.org; h=from:to:cc :subject:references:date:message-id:mime-version:content-type: content-transfer-encoding; s=jidanni.org; bh=f7hP3XeKmqvKFgIHb+H JFb1BrGE=; b=nQeDzcw4RuRO4s6YzA7LZ99OkbckO27FZkEXOU9Lvg2NqSTKK7N 9C8WPsyjb2NgEJvCD3iKydT3QsLuQGiOXFYZ7s5p7vrTP0I2r9FhbXzSV8niCvSd Le5fjSXtcSX+t7fP9rRMjBLKm9CNilkmaKJvYjveMEsJn+GIHFg+eHwA= Original-Received: from jidanni.org (114-41-29-124.dynamic-ip.hinet.net [114.41.29.124]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: jidanni@jidanni.org) by homiemail-a99.g.dreamhost.com (Postfix) with ESMTPSA id E9013D3E067; Wed, 28 Mar 2018 19:22:31 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:144677 Archived-At: Gentleman, other programs know to just use $BROWSER when calling the external browser. But for emacs and gnus, one must hire a consultant to achieve the same effect. At least one of the manuals should say how. And in fact, if $BROWSER is good enough for other programs, it should be the default for emacs/gnus too. >>>>> "KY" =3D=3D Katsumi Yamaoka writes: KY> On Tue, 27 Mar 2018 09:31:34 +0800, =E7=A9=8D=E4=B8=B9=E5=B0=BC=E3=81= =95=E3=82=93 wrote: >> RET runs the command shr-browse-url, which is an interactive compiled >> Lisp function in =E2=80=98shr.el=E2=80=99. KY> `shr-browse-url' runs the Lisp function `browse-url' (unless the KY> prefix argument is given when invoking `shr-browse-url'). KY> So, in the normal way that browse-url's author supposed, you can KY> choose a certain ready-made Lisp function as you like as follows: KY> (setq browse-url-browser-function #'browse-url-firefox) KY> To see the ready-made functions you can use, do: KY> M-x customize-option RET browse-url-browser-function RET KY> ;; You will see browse-url-firefox, browse-url-chromium, etc. >> I want it to call $BROWSER from the environment. >> ;;(if (string-equal (getenv "BROWSER") "chromium") >> ;; nil (setq browse-url-chromium-program >> ;; (concat "/usr/bin/" (getenv "BROWSER")))) ;I am a dork >> (setq browse-url-default-browser (getenv "BROWSER")) KY> `browse-url-default-browser' is a function, not a variable, and KY> is one of candidates for `browse-url-browser-function'. So, KY> this (setq ...) form has no effect. But you are not a dork. :-) Wrong. KY> You can create your own Lisp function that sees "BROWSER". KY> For example: KY> (setq browse-url-browser-function #'my-browse-url-default-browser) KY> (defun my-browse-url-default-browser (url &optional _dummy) KY> "Run a browser that the environment variable BROWSER specifies. KY> BROWSER may be an existing shell command name, or a command name plus KY> some arguments like: \"firefox\", or \"firefox -new-tab\"" KY> (interactive (browse-url-interactive-arg "URL: ")) KY> (let ((process-environment (browse-url-process-environment)) KY> (browser (getenv "BROWSER")) KY> args name) KY> (setq browser (split-string browser) KY> args (cdr browser) KY> browser (car browser) KY> name (concat (file-name-nondirectory browser) KY> " " (mapconcat #'identity args " ") KY> " " url) KY> url (browse-url-encode-url url)) KY> (apply 'start-process name nil (executable-find browser) KY> (append args (list url))))) Waaa... it actually works! Thanks!