From: Maxim Nikulin <manikulin@gmail.com>
To: emacs-orgmode@gnu.org
Cc: Lars Ingebrigtsen <larsi@gnus.org>, 12972@debbugs.gnu.org
Subject: Re: bug#12972: 24.3.50; Move `org-open-file' and associated code out of Org mode
Date: Wed, 2 Jun 2021 23:20:50 +0700 [thread overview]
Message-ID: <d8591c88-7de2-d597-4f0b-9a4521f17cda@gmail.com> (raw)
In-Reply-To: <87r1hmdqek.fsf__16088.3597027109$1622530682$gmane$org@gnus.org>
On 01/06/2021 13:56, Lars Ingebrigtsen wrote:
> So I've now added this to Emacs 28 under the name
> `mailcap-view-file'.
I am sorry if it is a false alarm. Feel free to close the bug again if
something changed recently in `start-process-shell-command' or if you
prefer to discuss the issue as another bug.
It seems that implementation of `mailcap-view-file' is unreliable due to
creation of unnecessary terminal session and it can cause obscure and
difficult to reproduce failures similar to
https://lists.gnu.org/archive/html/emacs-orgmode/2020-09/msg00195.html
https://lists.gnu.org/archive/html/emacs-orgmode/2020-06/msg00332.html
The thread is actually longer than it is shown in the archive interface.
Another lengthy discussion:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44824
In Org latest change was required for compatibility reason:
https://code.orgmode.org/bzg/org-mode/commit/869b7a21b94ed112f6640c8f2711c2a68b661dea
Let-bind (process-connection-type nil) is a minimal required change to
avoid unnecessary terminal session. However it is not friendly to users
in the case when troubleshooting is required. `make-process' with
sentinel is hopefully better.
The following could be ignored since it likely requires significant
amount of work with unclear benefits.
1. `org-open-file' besides Org-specific stuff allows to specify precise
target inside the file. It can be quite useful, e.g.
okular --page 11 --find "some pattern" file.pdf
PDF files have internal anchors as well. I have no consistent vision how
to express additional "locators" in general API.
2. There are at least two sources of truth for MIME-handlers on linux
desktop that are not necessary synchronized. Info from extracted from
.desktop files may be configurable from desktop UI unlike mailcap.
Distros may have some instruments to mitigate discrepancies. Debian adds
entries from .desktop handlers to system-wide mailcap DB. Another
approach is to add to maicap greedy xdg-open handler that tries to guess
currently running desktop and pass arguments to appropriate command.
Maybe mailcap should be secondary MIME database in Emacs, not the
primary one.
3. Currently only file suffix is inspected to determine MIME type of a
file. libmagic (or file command) usually provides more precise info, so
it is possible to open an incorrectly named file.
4. Mailcap has more features that are not addressed in Emacs. They may
be handy if Emacs is launched in terminal on remote server. It might
allow e.g. to open PDF file using pdftotext handler.
- A buffer for command output should be created for "copiousoutput" option.
- A buffer should be created and terminal session should be enabled if
an entry "needsterminal".
- There are more substitutions than "%s". However I am unsure if it is
possible to provide more info than application can obtain from the file.
I think, it is intended for mail multipart messages and additional headers.
On the other hand mailcap handlers might expect safe file names (minimal
ASCII subset), users may have files with arbitrary names (national
charset or some special characters). I hope, almost all handlers do not
have such problem.
In summary, during launch of external command terminal session must be
suppressed. There is enough room for MIME-related improvements in Emacs
in general and in Org mode in particular.
next prev parent reply other threads:[~2021-06-02 16:21 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-23 19:13 bug#12972: 24.3.50; Move `org-open-file' and associated code out of Org mode Drew Adams
2012-11-23 20:30 ` Jambunathan K
2021-06-01 6:56 ` Lars Ingebrigtsen
[not found] ` <87r1hmdqek.fsf__16088.3597027109$1622530682$gmane$org@gnus.org>
2021-06-02 16:20 ` Maxim Nikulin
2021-06-02 16:20 ` Maxim Nikulin [this message]
2021-07-01 17:01 ` bug#12972: [PATCH] Avoid regression in mailcap-view-file similar to Bug#44824 Maxim Nikulin
2021-07-01 18:38 ` Eli Zaretskii
[not found] ` <835yxtlw14.fsf__2546.8955327355$1625164803$gmane$org@gnu.org>
2021-07-02 12:21 ` Maxim Nikulin
2021-07-02 12:37 ` Eli Zaretskii
[not found] ` <837di8ki24.fsf__46278.4886871063$1625229533$gmane$org@gnu.org>
2021-07-02 16:24 ` Maxim Nikulin
2021-07-02 17:28 ` Eli Zaretskii
[not found] ` <831r8gk4m0.fsf__14172.0669272885$1625246977$gmane$org@gnu.org>
2021-07-03 11:29 ` Maxim Nikulin
2021-07-03 11:56 ` Eli Zaretskii
[not found] ` <83im1ripaz.fsf__31901.4239286602$1625313464$gmane$org@gnu.org>
2021-07-04 13:37 ` Maxim Nikulin
2021-07-04 13:49 ` Eli Zaretskii
2021-07-05 13:12 ` Maxim Nikulin
2021-07-05 15:23 ` Eli Zaretskii
2021-07-30 12:01 ` bug#12972: 24.3.50; Move `org-open-file' and associated code out of Org mode Lars Ingebrigtsen
2021-07-30 12:24 ` Maxim Nikulin
2021-07-30 12:24 ` Maxim Nikulin
2021-07-30 12:42 ` Lars Ingebrigtsen
2021-07-30 12:42 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d8591c88-7de2-d597-4f0b-9a4521f17cda@gmail.com \
--to=manikulin@gmail.com \
--cc=12972@debbugs.gnu.org \
--cc=emacs-orgmode@gnu.org \
--cc=larsi@gnus.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.