On 30/07/2021 19:01, Lars Ingebrigtsen wrote:
Maxim Nikulin writes:
I am attaching a patch similar to proposed to Org mode that should
help to avoid obscure failures of viewers due to unnecessary terminal
sessions.
Thanks; makes sense to me (and seems to fix these persistent issues with
xgd-open etc), so I've applied it to Emacs 28.
Thanks for looking into this issue. Please, consider the following
additional change:
----- 8< -----
diff --git a/lisp/net/mailcap.el b/lisp/net/mailcap.el
index f64897ac9b..aeeb9bd8d3 100644
--- a/lisp/net/mailcap.el
+++ b/lisp/net/mailcap.el
@@ -1186,7 +1186,6 @@ See \"~/.mailcap\", `mailcap-mime-data' and
related files and variables."
(make-process
:name "mailcap-view-file"
:connection-type 'pipe
- :noquery t
:buffer nil ; "*Messages*" may be suitable for debugging
:sentinel (lambda (proc event)
(when (and (memq (process-status proc) '(exit signal))
---- >8 ----
I did not update the patch since Eli had some objections (unclear to
me). I wrongly added :noquery expecting to get a process completely
detached from Emacs, something like result of "synchronous"
(process-file-shell-command command nil 0 nil)
on linux (on stackoverflow I have seen a note that w32 requires special
treatment).
Notice that "pipe" asynchronous Emacs processes have a problem with CPU
consumption if a process does something like
#!/bin/sh
exec 1>&-
exec 2>&-
sleep 30
Though I believe even silently killed on exit children and CPU-hungry
Emacs in rare cases are better than decade old pseudoterminal+SIGHUP
problem with xdg-open. I suppose, it is an Emacs bug, note Gnome or KDE
issue.
https://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00279.html