summaryrefslogtreecommitdiff
path: root/lisp/mail/emacsbug.el
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2017-03-09 19:01:19 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2017-03-09 19:02:35 -0800
commit26848af97f333c4699934a545eb2888b1006b326 (patch)
treec455bb6e73d9706f290e8c6b26c31fc3c12ebcef /lisp/mail/emacsbug.el
parent092071345f265efcd3abd6de01552ebe95ffb9a1 (diff)
downloademacs-26848af97f333c4699934a545eb2888b1006b326.tar.gz
emacs-26848af97f333c4699934a545eb2888b1006b326.tar.bz2
emacs-26848af97f333c4699934a545eb2888b1006b326.zip
Simplify checks for xdg-open and xdg-email
browse-url's xdg-open detection was too picky on some GNU/Linux desktops; see Bug#25778. Simplify the code by assuming xdg-open works if it is executable, as nowadays this is more likely to be correct than trying to use heuristics from a few years ago. Don't test for nohup: it is ineffective nowadays, as xdg-open's child uses the default action for SIGHUP even if xdg-open's invoker ignores SIGHUP. While we're at it, allow for Wayland here, as "emacs -nw" might be running in a non-X Wayland terminal. * lisp/mail/emacsbug.el (report-emacs-bug-can-use-xdg-email): * lisp/net/browse-url.el (browse-url-can-use-xdg-open): Simplify to a test for DISPLAY and whether the helper program is executable. Allow WAYLAND_DISPLAY as an option.
Diffstat (limited to 'lisp/mail/emacsbug.el')
-rw-r--r--lisp/mail/emacsbug.el29
1 files changed, 4 insertions, 25 deletions
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index ecb7db60ae1..c1aec6923fb 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -77,33 +77,12 @@
(equal (executable-find "open") "/usr/bin/open")
(memq system-type '(darwin))))
-;; FIXME this duplicates much of the logic from browse-url-can-use-xdg-open.
(defun report-emacs-bug-can-use-xdg-email ()
"Return non-nil if the \"xdg-email\" command can be used.
-xdg-email is a desktop utility that calls your preferred mail client.
-This requires you to be running either Gnome, KDE, or Xfce4."
- (and (getenv "DISPLAY")
- (executable-find "xdg-email")
- (or (getenv "GNOME_DESKTOP_SESSION_ID")
- ;; GNOME_DESKTOP_SESSION_ID is deprecated, check on Dbus also.
- (condition-case nil
- (eq 0 (call-process
- "dbus-send" nil nil nil
- "--dest=org.gnome.SessionManager"
- "--print-reply"
- "/org/gnome/SessionManager"
- "org.gnome.SessionManager.CanShutdown"))
- (error nil))
- (equal (getenv "KDE_FULL_SESSION") "true")
- ;; FIXME? browse-url-can-use-xdg-open also accepts LXDE.
- ;; Is that no good here, or just overlooked?
- (condition-case nil
- (eq 0 (call-process
- "/bin/sh" nil nil nil
- "-c"
- ;; FIXME use string-match rather than grep.
- "xprop -root _DT_SAVE_MODE|grep xfce4"))
- (error nil)))))
+xdg-email is a desktop utility that calls your preferred mail client."
+ (and ;; See browse-url-can-use-xdg-open.
+ (or (getenv "DISPLAY") (getenv "WAYLAND_DISPLAY"))
+ (executable-find "xdg-email")))
(defun report-emacs-bug-insert-to-mailer ()
"Send the message to your preferred mail client.