* [PATCH] Fix FAQ entry about mailto links.
@ 2022-01-06 18:34 Robert Goldman
2022-01-07 11:03 ` Max Nikulin
2022-03-12 15:50 ` [PATCH] " Max Nikulin
0 siblings, 2 replies; 9+ messages in thread
From: Robert Goldman @ 2022-01-06 18:34 UTC (permalink / raw)
To: emacs-orgmode
The old entry referred to the variable =org-link-mailto-program= which
was removed from org-mode almost eight years ago! See org-mode commit
b9f2e17f07faf01109fc6f7f1eb5a34e0f97eafb
---
org-faq.org | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/org-faq.org b/org-faq.org
index 4b34560c..cac8063e 100644
--- a/org-faq.org
+++ b/org-faq.org
@@ -1927,13 +1927,13 @@ For example:
#+index: Link!Mailto
You can customize the function org-mode uses to open mailto links by
-setting the variable =org-link-mailto-program=:
+changing the entry for =mailto:= links in =org-link-parameters=:
-=M-x customize-variable org-link-mailto-program=
+=M-x customize-variable org-link-parameters=
The default function called is =browse-url=, which opens a mail
composition buffer within Emacs. The type of buffer opened by
-browse-url depends on the setting of the variable =mail-user-agent=.
+=browse-url= depends on the setting of the variable =mail-user-agent=.
Thus, if you want to ensure that mailto links use Gnus to open a
message buffer, you could add the following to your =.emacs=:
@@ -1941,6 +1941,18 @@ message buffer, you could add the following to
your =.emacs=:
(setq mail-user-agent 'gnus-user-agent)
#+end_src
+You can also change the function used to a different one. For
+example, the following function (on MacOS) opens =mailto:= links in
+the =MailMate= program:
+
+#+begin_src elisp
+("mailto" :follow
+ (lambda
+ (path)
+ (shell-command
+ (format "open -a MailMate 'mailto:%s'" path))))
+#+end_src
+
** Can I use CamelCase links?
:PROPERTIES:
:CUSTOM_ID: CamelCase-links
--
2.31.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix FAQ entry about mailto links.
2022-01-06 18:34 [PATCH] Fix FAQ entry about mailto links Robert Goldman
@ 2022-01-07 11:03 ` Max Nikulin
2022-02-07 16:59 ` Max Nikulin
2022-03-12 15:50 ` [PATCH] " Max Nikulin
1 sibling, 1 reply; 9+ messages in thread
From: Max Nikulin @ 2022-01-07 11:03 UTC (permalink / raw)
To: emacs-orgmode
On 07/01/2022 01:34, Robert Goldman wrote:
>
> The old entry referred to the variable =org-link-mailto-program= which
> was removed from org-mode almost eight years ago! See org-mode commit
> b9f2e17f07faf01109fc6f7f1eb5a34e0f97eafb
Unfortunately FAQ has a lot of obsolete recipes. Generally it is great
when answers are updated with contemporary info. I have a couple of
questions concerning your patch though.
> diff --git a/org-faq.org b/org-faq.org
>
> The default function called is =browse-url=, which opens a mail
> composition buffer within Emacs. The type of buffer opened by
> -browse-url depends on the setting of the variable =mail-user-agent=.
> +=browse-url= depends on the setting of the variable =mail-user-agent=.
[[info:emacs#Browse-URL][info "(emacs) Browse-URL"]] link to the Emacs
manual might be used. I am unsure however if it is really necessary.
> +You can also change the function used to a different one. For
> +example, the following function (on MacOS) opens =mailto:= links in
> +the =MailMate= program:
> +
> +#+begin_src elisp
> +("mailto" :follow
^
It seems, `org-link-set-parameters' is missed. I am not an experienced
emacs user, so my question may be naive. There is
`browse-url-mailto-function' since Emacs-24.1 that should be called by
`browse-url'. Is there a reason to avoid its customization instead?
> + (lambda
> + (path)
> + (shell-command
> + (format "open -a MailMate 'mailto:%s'" path))))
> +#+end_src
Shell commands require a lot of care otherwise they become an open door
to security vulnerabilities. I am a linux user and I have tried a dialog
application instead of real mailer for a test:
---- >8 ----
#+begin_src elisp :results silent
(org-link-set-parameters
"mailto" :follow
(lambda
(path)
(shell-command
(format "zenity --info --no-markup --title 'org mailto: test' --text
'mailto:%s'" path))))
#+end_src
[[mailto:Hacker '`mktemp mailto-vulnerability.XXXXXX`' <hack@te.st>]]
---- 8< -----
Following the link (C-c C-o) caused creation of a file in the current
directory.
Arguments to shell should be at least passed through
`shell-quote-argument'. A better way is to use more verbose function
that accepts arguments as a list and directly executes the binary
without interpreting anything by shell.
Another problem that the command above blocked emacs session. I do not
know a reliable way to launch a detached process from emacs. When
someone adds a code that should perform such task, it usually suffers
from a decade-old bug
https://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00279.html
Current code in `mailcup-view-mime' and in `org-open-file' suffers from
at least three other problems: I do not know anything about first one
besides that it is somehow related to compatibility, another one assumed
to be rather rare, third one is that the process have to be killed on
exiting from emacs.
So, I hope, `make-process' is better than `shell-command', but a
specific application might make emacs CPU hungry.
A recipe having security issues, in my opinion, is worse than no example
at all.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix FAQ entry about mailto links.
2022-01-07 11:03 ` Max Nikulin
@ 2022-02-07 16:59 ` Max Nikulin
2022-02-10 17:42 ` Robert Goldman
0 siblings, 1 reply; 9+ messages in thread
From: Max Nikulin @ 2022-02-07 16:59 UTC (permalink / raw)
To: emacs-orgmode; +Cc: Robert Goldman
[-- Attachment #1: Type: text/plain, Size: 1031 bytes --]
Robert,
Thank you for pointing out that `org-link-mailto-program' should not be
recommended in FAQ any more.
I prepared an alternative patch that recommends to customize Emacs
variables at first. I hope, an example is safer now, however I can not
test it on MacOS. Could you, please, review the patch, since I may miss
something important from your point of view?
On 07/01/2022 18:03, Max Nikulin wrote:
> On 07/01/2022 01:34, Robert Goldman wrote:
>>
>> +You can also change the function used to a different one. For
>> +example, the following function (on MacOS) opens =mailto:= links in
>> +the =MailMate= program:
I am unsure if MailMate is acceptable since it is a proprietary
application. Org is a part of *GNU* Emacs, so it may be better to
mention some free mail user agent.
>> +#+begin_src elisp
>> +("mailto" :follow
> ^
> It seems, `org-link-set-parameters' is missed.
I am sorry, I missed that you suggested to customize the
`org-link-parameters' variable, so function call is not necessary here.
[-- Attachment #2: 0001-FAQ-Update-suggestion-for-mailto-link-handlers.patch --]
[-- Type: text/x-patch, Size: 5869 bytes --]
From 2ace01016588884f61361b6f37bf3273f8520f2c Mon Sep 17 00:00:00 2001
From: Max Nikulin <manikulin@gmail.com>
Date: Mon, 7 Feb 2022 23:40:37 +0700
Subject: [PATCH] FAQ: Update suggestion for mailto: link handlers
org-faq.org (mailto-links): Mention `org-link-mailto-program' as removed
variable, recommend customization of `browse-url-mailto-function' or
`org-link-parameters' instead.
Robert Goldman <rpgoldman@sift.net> in
https://list.orgmode.org/FEAD92A6-87DE-4CFF-8459-E3D012DD3F52@sift.net
proposed a patch removing mention of `org-link-mailto-program' variable
that is not used in the code for some time. The patch has an example of
usage `org-link-parameters' to assign custom external handler for
mailto: links.
This change recommends to configure Emacs facilities used by Org as
well. It has a safer example for `org-link-parameters' customization.
---
org-faq.org | 87 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 76 insertions(+), 11 deletions(-)
diff --git a/org-faq.org b/org-faq.org
index 4b34560c..b6bde3ca 100644
--- a/org-faq.org
+++ b/org-faq.org
@@ -1926,21 +1926,86 @@ For example:
#+index: Link!Mailto
-You can customize the function org-mode uses to open mailto links by
-setting the variable =org-link-mailto-program=:
+Org calls ~browse-url~ function for =mailto:= links, so it should obey
+your Emacs configuration. If something goes wrong then
+[[info:emacs#Browse-URL][info "(emacs) Browse-URL"]] may be a good starting point.
+
+By default mail is composed in an Emacs buffer. If you prefer some
+external application instead than set ~browse-url-mailto-function~ to
+nil, e.g. using
+[[elisp:(customize-variable 'browse-url-mailto-function)][=M-x customize-variable RET browse-url-mailto-function RET=]]
+and =mailto:= links will be opened accordingly to
+~browse-url~browser-function~ value.
+
+If you intention is to compose messages in Emacs then consult
+[[info:emacs#Mail Methods][info "(emacs) Mail Methods"]]. Check that ~browse-url-mailto-function~
+has its default value ~browse-url-mail~. Emacs has several mail
+packages, so next step may be
+[[elisp:(customize-variable 'mail-user-agent)][=M-x customize-variable RET mail-user-agent RET=]] to set the variable
+to e.g. =gnus-user-agent=.
+
+If you prefer an external application other than configured in desktop
+environment then you should write a custom URL handler function. Be
+careful, try to avoid shell (e.g. ~shell-command~ function) since it
+is easy to mess up with escaping of the URL argument and thus to allow
+execution of arbitrary code. Some parts of links may be treated as
+shell specials. Choosing of a proper function to invoke external
+application is a non-trivial task even for seasoned Emacs developers.
+Consult source code of ~browse-url-xdg-open~,
+~browse-url-default-macosx-browser~, or
+~browse-url-default-windows-browser~ for GNU/Linux,
+Mac\nbsp{}OS\nbsp{}X, or MS\nbsp{}Windows platforms accordingly.
-=M-x customize-variable org-link-mailto-program=
-
-The default function called is =browse-url=, which opens a mail
-composition buffer within Emacs. The type of buffer opened by
-browse-url depends on the setting of the variable =mail-user-agent=.
-Thus, if you want to ensure that mailto links use Gnus to open a
-message buffer, you could add the following to your =.emacs=:
+#+begin_comment
+Recurring source of pain is interaction of Emacs function with
+=xdg-open=, =kde-open5=, =gio open= utilities on Linux. While
+~call-process~ with 0 as ~DESTINATION~ argument for
+~browse-url-generic~ was settled in 2004, ~browse-url-xdg-open~ was
+evolving to similar code in 2011. Notice that application has no
+chance to notify Emacs about failure.
+
+Example of confusion that fortunately was not resulted in changing of
+code: [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9779#29]] There was
+a lengthy thread "& and M-& to run programs asynchronously" in 2009
+with strange conclusion that it is a bug in Gnome utility:
+[[https://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00279.html]]
+
+~org-open-file~ and ~mailcap-view-mime~ use another approach to launch
+application (shell is required by mailcap RFC-1524). A prompt to kill
+process may appear quitting from Emacs, some application might cause
+high CPU consumption by Emacs. See
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44824 and
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=12972 for details.
+
+Have this in mind if you decide to add more examples.
+#+end_comment
-#+begin_src elisp
-(setq mail-user-agent 'gnus-user-agent)
+When you are ready with a function launching your preferred handler
+for =mailto:= links, you should add it to ~browse-url-handlers~
+associations list for Emacs-28.1 and newer or to
+~browse-url-browser-function~ for earlier versions by customizing the
+suitable variable.
+
+If you are going to change handler just in Org mode in a way that does
+not affect rest of Emacs than you can adjust it through
+[[elisp:(customize-variable 'org-link-parameters)][=M-x customize-variable RET org-link-parameters RET=]], e.g. for
+Mac\nbsp{}OS\nbsp{}X link property may be following (on Linux to avoid
+silent failures add ~(process-connection-type nil)~ to ~let~ variables
+or use ~call-process~ with =0= as the =DESTINATION= argument):
+
+#+begin_src elisp :results none
+("mailto"
+ :follow (lambda (path)
+ (let ((url (concat "mailto:" path)))
+ ;; platform-specific choice of function
+ (start-process (concat "open " url) nil
+ "open" "-a" "Thunderbird" "--args" url))))
#+end_src
+In earlier versions Org had ~org-link-mailto-program~ variable, but it
+was removed, so its customization does not work any more. Update your
+init file if you noticed this variable.
+
** Can I use CamelCase links?
:PROPERTIES:
:CUSTOM_ID: CamelCase-links
--
2.25.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix FAQ entry about mailto links.
2022-02-07 16:59 ` Max Nikulin
@ 2022-02-10 17:42 ` Robert Goldman
2022-02-14 13:22 ` [PATCH v3] " Max Nikulin
0 siblings, 1 reply; 9+ messages in thread
From: Robert Goldman @ 2022-02-10 17:42 UTC (permalink / raw)
To: Max Nikulin; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 1400 bytes --]
On 7 Feb 2022, at 10:59, Max Nikulin wrote:
> Robert,
>
> Thank you for pointing out that `org-link-mailto-program' should not
> be recommended in FAQ any more.
>
> I prepared an alternative patch that recommends to customize Emacs
> variables at first. I hope, an example is safer now, however I can not
> test it on MacOS. Could you, please, review the patch, since I may
> miss something important from your point of view?
>
> On 07/01/2022 18:03, Max Nikulin wrote:
>> On 07/01/2022 01:34, Robert Goldman wrote:
>>>
>>> +You can also change the function used to a different one. For
>>> +example, the following function (on MacOS) opens =mailto:= links in
>>> +the =MailMate= program:
>
> I am unsure if MailMate is acceptable since it is a proprietary
> application. Org is a part of *GNU* Emacs, so it may be better to
> mention some free mail user agent.
>
>>> +#+begin_src elisp
>>> +("mailto" :follow
>> ^
>> It seems, `org-link-set-parameters' is missed.
>
> I am sorry, I missed that you suggested to customize the
> `org-link-parameters' variable, so function call is not necessary
> here.
There are a couple of minor issues in the patch you sent (including a
couple of grammatical errors), so attached is a revision.
I'm afraid there are now multiple patch files.
Please note that I have requested clarification at several places in the
comment block.
Best,
R
[-- Attachment #2: 0001-Fix-FAQ-entry-about-mailto-links.patch --]
[-- Type: text/plain, Size: 1950 bytes --]
From b8158af7a839a751e6976cd95d18a5d5f199024a Mon Sep 17 00:00:00 2001
From: "Robert P. Goldman" <rpgoldman@sift.net>
Date: Thu, 6 Jan 2022 12:27:59 -0600
Subject: [PATCH 1/4] Fix FAQ entry about mailto links.
The old entry referred to the variable =org-link-mailto-program= which
was removed from org-mode almost eight years ago! See org-mode commit
b9f2e17f07faf01109fc6f7f1eb5a34e0f97eafb
---
org-faq.org | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/org-faq.org b/org-faq.org
index 4b34560c..cac8063e 100644
--- a/org-faq.org
+++ b/org-faq.org
@@ -1927,13 +1927,13 @@ For example:
#+index: Link!Mailto
You can customize the function org-mode uses to open mailto links by
-setting the variable =org-link-mailto-program=:
+changing the entry for =mailto:= links in =org-link-parameters=:
-=M-x customize-variable org-link-mailto-program=
+=M-x customize-variable org-link-parameters=
The default function called is =browse-url=, which opens a mail
composition buffer within Emacs. The type of buffer opened by
-browse-url depends on the setting of the variable =mail-user-agent=.
+=browse-url= depends on the setting of the variable =mail-user-agent=.
Thus, if you want to ensure that mailto links use Gnus to open a
message buffer, you could add the following to your =.emacs=:
@@ -1941,6 +1941,18 @@ message buffer, you could add the following to your =.emacs=:
(setq mail-user-agent 'gnus-user-agent)
#+end_src
+You can also change the function used to a different one. For
+example, the following function (on MacOS) opens =mailto:= links in
+the =MailMate= program:
+
+#+begin_src elisp
+("mailto" :follow
+ (lambda
+ (path)
+ (shell-command
+ (format "open -a MailMate 'mailto:%s'" path))))
+#+end_src
+
** Can I use CamelCase links?
:PROPERTIES:
:CUSTOM_ID: CamelCase-links
--
2.31.1
[-- Attachment #3: 0002-Revert-Fix-FAQ-entry-about-mailto-links.patch --]
[-- Type: text/plain, Size: 1837 bytes --]
From e7f0f2c51950b3c0f181191c5210ea26cafc03f4 Mon Sep 17 00:00:00 2001
From: "Robert P. Goldman" <rpgoldman@sift.net>
Date: Thu, 10 Feb 2022 11:20:36 -0600
Subject: [PATCH 2/4] Revert "Fix FAQ entry about mailto links."
This reverts commit b8158af7a839a751e6976cd95d18a5d5f199024a.
---
org-faq.org | 18 +++---------------
1 file changed, 3 insertions(+), 15 deletions(-)
diff --git a/org-faq.org b/org-faq.org
index cac8063e..4b34560c 100644
--- a/org-faq.org
+++ b/org-faq.org
@@ -1927,13 +1927,13 @@ For example:
#+index: Link!Mailto
You can customize the function org-mode uses to open mailto links by
-changing the entry for =mailto:= links in =org-link-parameters=:
+setting the variable =org-link-mailto-program=:
-=M-x customize-variable org-link-parameters=
+=M-x customize-variable org-link-mailto-program=
The default function called is =browse-url=, which opens a mail
composition buffer within Emacs. The type of buffer opened by
-=browse-url= depends on the setting of the variable =mail-user-agent=.
+browse-url depends on the setting of the variable =mail-user-agent=.
Thus, if you want to ensure that mailto links use Gnus to open a
message buffer, you could add the following to your =.emacs=:
@@ -1941,18 +1941,6 @@ message buffer, you could add the following to your =.emacs=:
(setq mail-user-agent 'gnus-user-agent)
#+end_src
-You can also change the function used to a different one. For
-example, the following function (on MacOS) opens =mailto:= links in
-the =MailMate= program:
-
-#+begin_src elisp
-("mailto" :follow
- (lambda
- (path)
- (shell-command
- (format "open -a MailMate 'mailto:%s'" path))))
-#+end_src
-
** Can I use CamelCase links?
:PROPERTIES:
:CUSTOM_ID: CamelCase-links
--
2.31.1
[-- Attachment #4: 0003-From-Max-Nikulin.patch --]
[-- Type: text/plain, Size: 5314 bytes --]
From 2fcf6bd07aa3e09cd11328e9e57cf3915c08a667 Mon Sep 17 00:00:00 2001
From: "Robert P. Goldman" <rpgoldman@sift.net>
Date: Thu, 10 Feb 2022 11:21:11 -0600
Subject: [PATCH 3/4] From Max Nikulin.
---
org-faq.org | 87 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 76 insertions(+), 11 deletions(-)
diff --git a/org-faq.org b/org-faq.org
index 4b34560c..b6bde3ca 100644
--- a/org-faq.org
+++ b/org-faq.org
@@ -1926,21 +1926,86 @@ For example:
#+index: Link!Mailto
-You can customize the function org-mode uses to open mailto links by
-setting the variable =org-link-mailto-program=:
+Org calls ~browse-url~ function for =mailto:= links, so it should obey
+your Emacs configuration. If something goes wrong then
+[[info:emacs#Browse-URL][info "(emacs) Browse-URL"]] may be a good starting point.
+
+By default mail is composed in an Emacs buffer. If you prefer some
+external application instead than set ~browse-url-mailto-function~ to
+nil, e.g. using
+[[elisp:(customize-variable 'browse-url-mailto-function)][=M-x customize-variable RET browse-url-mailto-function RET=]]
+and =mailto:= links will be opened accordingly to
+~browse-url~browser-function~ value.
+
+If you intention is to compose messages in Emacs then consult
+[[info:emacs#Mail Methods][info "(emacs) Mail Methods"]]. Check that ~browse-url-mailto-function~
+has its default value ~browse-url-mail~. Emacs has several mail
+packages, so next step may be
+[[elisp:(customize-variable 'mail-user-agent)][=M-x customize-variable RET mail-user-agent RET=]] to set the variable
+to e.g. =gnus-user-agent=.
+
+If you prefer an external application other than configured in desktop
+environment then you should write a custom URL handler function. Be
+careful, try to avoid shell (e.g. ~shell-command~ function) since it
+is easy to mess up with escaping of the URL argument and thus to allow
+execution of arbitrary code. Some parts of links may be treated as
+shell specials. Choosing of a proper function to invoke external
+application is a non-trivial task even for seasoned Emacs developers.
+Consult source code of ~browse-url-xdg-open~,
+~browse-url-default-macosx-browser~, or
+~browse-url-default-windows-browser~ for GNU/Linux,
+Mac\nbsp{}OS\nbsp{}X, or MS\nbsp{}Windows platforms accordingly.
-=M-x customize-variable org-link-mailto-program=
-
-The default function called is =browse-url=, which opens a mail
-composition buffer within Emacs. The type of buffer opened by
-browse-url depends on the setting of the variable =mail-user-agent=.
-Thus, if you want to ensure that mailto links use Gnus to open a
-message buffer, you could add the following to your =.emacs=:
+#+begin_comment
+Recurring source of pain is interaction of Emacs function with
+=xdg-open=, =kde-open5=, =gio open= utilities on Linux. While
+~call-process~ with 0 as ~DESTINATION~ argument for
+~browse-url-generic~ was settled in 2004, ~browse-url-xdg-open~ was
+evolving to similar code in 2011. Notice that application has no
+chance to notify Emacs about failure.
+
+Example of confusion that fortunately was not resulted in changing of
+code: [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9779#29]] There was
+a lengthy thread "& and M-& to run programs asynchronously" in 2009
+with strange conclusion that it is a bug in Gnome utility:
+[[https://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00279.html]]
+
+~org-open-file~ and ~mailcap-view-mime~ use another approach to launch
+application (shell is required by mailcap RFC-1524). A prompt to kill
+process may appear quitting from Emacs, some application might cause
+high CPU consumption by Emacs. See
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44824 and
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=12972 for details.
+
+Have this in mind if you decide to add more examples.
+#+end_comment
-#+begin_src elisp
-(setq mail-user-agent 'gnus-user-agent)
+When you are ready with a function launching your preferred handler
+for =mailto:= links, you should add it to ~browse-url-handlers~
+associations list for Emacs-28.1 and newer or to
+~browse-url-browser-function~ for earlier versions by customizing the
+suitable variable.
+
+If you are going to change handler just in Org mode in a way that does
+not affect rest of Emacs than you can adjust it through
+[[elisp:(customize-variable 'org-link-parameters)][=M-x customize-variable RET org-link-parameters RET=]], e.g. for
+Mac\nbsp{}OS\nbsp{}X link property may be following (on Linux to avoid
+silent failures add ~(process-connection-type nil)~ to ~let~ variables
+or use ~call-process~ with =0= as the =DESTINATION= argument):
+
+#+begin_src elisp :results none
+("mailto"
+ :follow (lambda (path)
+ (let ((url (concat "mailto:" path)))
+ ;; platform-specific choice of function
+ (start-process (concat "open " url) nil
+ "open" "-a" "Thunderbird" "--args" url))))
#+end_src
+In earlier versions Org had ~org-link-mailto-program~ variable, but it
+was removed, so its customization does not work any more. Update your
+init file if you noticed this variable.
+
** Can I use CamelCase links?
:PROPERTIES:
:CUSTOM_ID: CamelCase-links
--
2.31.1
[-- Attachment #5: 0004-Further-edits-to-Max-Nikulin-s-patch.patch --]
[-- Type: text/plain, Size: 6362 bytes --]
From 9d415c3d55c3f0817598b7d746d96ae9f602623c Mon Sep 17 00:00:00 2001
From: "Robert P. Goldman" <rpgoldman@sift.net>
Date: Thu, 10 Feb 2022 11:39:53 -0600
Subject: [PATCH 4/4] Further edits to Max Nikulin's patch.
---
org-faq.org | 84 +++++++++++++++++++++++++++++++++++------------------
1 file changed, 55 insertions(+), 29 deletions(-)
diff --git a/org-faq.org b/org-faq.org
index b6bde3ca..1819326c 100644
--- a/org-faq.org
+++ b/org-faq.org
@@ -1926,58 +1926,84 @@ For example:
#+index: Link!Mailto
-Org calls ~browse-url~ function for =mailto:= links, so it should obey
+Org calls the ~browse-url~ function for =mailto:= links, so it should obey
your Emacs configuration. If something goes wrong then
[[info:emacs#Browse-URL][info "(emacs) Browse-URL"]] may be a good starting point.
By default mail is composed in an Emacs buffer. If you prefer some
-external application instead than set ~browse-url-mailto-function~ to
-nil, e.g. using
+external application instead then set ~browse-url-mailto-function~ to
+=nil=, e.g. using
[[elisp:(customize-variable 'browse-url-mailto-function)][=M-x customize-variable RET browse-url-mailto-function RET=]]
-and =mailto:= links will be opened accordingly to
-~browse-url~browser-function~ value.
+and =mailto:= links will be opened according to the value of
+~browse-url~browser-function~.
-If you intention is to compose messages in Emacs then consult
+If you wish to compose messages in Emacs then consult
[[info:emacs#Mail Methods][info "(emacs) Mail Methods"]]. Check that ~browse-url-mailto-function~
has its default value ~browse-url-mail~. Emacs has several mail
-packages, so next step may be
-[[elisp:(customize-variable 'mail-user-agent)][=M-x customize-variable RET mail-user-agent RET=]] to set the variable
-to e.g. =gnus-user-agent=.
-
-If you prefer an external application other than configured in desktop
-environment then you should write a custom URL handler function. Be
-careful, try to avoid shell (e.g. ~shell-command~ function) since it
-is easy to mess up with escaping of the URL argument and thus to allow
-execution of arbitrary code. Some parts of links may be treated as
-shell specials. Choosing of a proper function to invoke external
+packages, so the next step may be to configure that variable to, e.g.,
+ =gnus-user-agent= using
+[[elisp:(customize-variable 'mail-user-agent)][=M-x customize-variable RET mail-user-agent RET=]] .
+
+If you prefer an external application that is /not/ the one configured
+in your desktop environment,
+then you should write a custom URL handler function. Be
+careful, try to avoid using the shell (e.g. ~shell-command~ function) since it
+is easy to mess up the escaping of the URL argument and allow
+execution of arbitrary code: some parts of links may be treated as
+shell specials. Choosing a proper function to invoke an external
application is a non-trivial task even for seasoned Emacs developers.
-Consult source code of ~browse-url-xdg-open~,
+For examples, consult the source code of ~browse-url-xdg-open~,
~browse-url-default-macosx-browser~, or
~browse-url-default-windows-browser~ for GNU/Linux,
Mac\nbsp{}OS\nbsp{}X, or MS\nbsp{}Windows platforms accordingly.
#+begin_comment
-Recurring source of pain is interaction of Emacs function with
-=xdg-open=, =kde-open5=, =gio open= utilities on Linux. While
+A recurring source of pain for Emacs users is the interaction
+of Emacs functions with the
+=xdg-open=, =kde-open5=, and =gio open= utilities on Linux. While
~call-process~ with 0 as ~DESTINATION~ argument for
~browse-url-generic~ was settled in 2004, ~browse-url-xdg-open~ was
-evolving to similar code in 2011. Notice that application has no
-chance to notify Emacs about failure.
-
-Example of confusion that fortunately was not resulted in changing of
-code: [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9779#29]] There was
+evolving to similar code in 2011. Notice that the application has no
+chance to notify Emacs if it fails.
+
+**side comment:** the above paragraph is hard to understand. Would it be
+possible to add pointers to the discussion of these issues? Also what
+is meant by "~browse-url-xdg-open~ was evolving to similar code in
+2011." Finally, it's not /generally/ true that subprocess
+applications can't inform Emacs of failures. I believe that what is
+meant here is something more like "Notice that applications invoked
+through =browse-url-<foo>= have no way to notify Emacs if they fail."
+This makes sense, because browsers don't exit with a bad exit status
+if they fail to open a URL as expected. -- rpg
+
+**End of side comment**
+
+Example of this confusion:
+[[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9779#29]]
+There was
a lengthy thread "& and M-& to run programs asynchronously" in 2009
-with strange conclusion that it is a bug in Gnome utility:
+which reached the strange conclusion that it is a bug in Gnome utility:
[[https://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00279.html]]
+**Side comment:** The above paragraph is also difficult to parse.
+Confusion about what? Lack of error report? What does it mean "has
+not resulted in changing of code"? I have cut that. Also, which Gnome
+utility do you mean here? Or did you just mean "a bug in the Gnome
+desktop"? **End**
+
~org-open-file~ and ~mailcap-view-mime~ use another approach to launch
-application (shell is required by mailcap RFC-1524). A prompt to kill
-process may appear quitting from Emacs, some application might cause
-high CPU consumption by Emacs. See
+applications (shell is required by mailcap RFC-1524). This approach
+can lead to user confusion such as:
+A prompt to kill
+such applications' process may appear to users to be a prompt to quit
+Emacs;
+some applications might cause high CPU consumption by Emacs. See
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44824 and
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=12972 for details.
-Have this in mind if you decide to add more examples.
+**Please review the above edits.**
+
+Keep these considerations in mind if you decide to add more examples.
#+end_comment
When you are ready with a function launching your preferred handler
--
2.31.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3] Fix FAQ entry about mailto links.
2022-02-10 17:42 ` Robert Goldman
@ 2022-02-14 13:22 ` Max Nikulin
2022-02-16 1:29 ` Robert Goldman
0 siblings, 1 reply; 9+ messages in thread
From: Max Nikulin @ 2022-02-14 13:22 UTC (permalink / raw)
To: emacs-orgmode; +Cc: Robert Goldman
[-- Attachment #1: Type: text/plain, Size: 4944 bytes --]
On 11/02/2022 00:42, Robert Goldman wrote:
>
> There are a couple of minor issues in the patch you sent (including a
> couple of grammatical errors), so attached is a revision.
Great. Thank you, Robert, it exact reason why I asked for a review.
I am sending the updated patch and a diff to your edits to highlight my
latest changes.
> From e7f0f2c51950b3c0f181191c5210ea26cafc03f4 Mon Sep 17 00:00:00 2001
> From: "Robert P. Goldman" <rpgoldman@sift.net>
> Date: Thu, 10 Feb 2022 11:20:36 -0600
> Subject: [PATCH 2/4] Revert "Fix FAQ entry about mailto links."
>
> This reverts commit b8158af7a839a751e6976cd95d18a5d5f199024a.
Would you like to have you original version in git history? For me it is
not a problem to make my patch updating yours one without reverting the
original commit (create another branch, cherry-pick commits, resolve
conflict to the latest state). Otherwise you can avoid unnecessary
commits in your local repository by either applying my patch to a new
branch or using "git rebase -i master" to drop unnecessary commits.
> +If you prefer an external application that is /not/ the one configured
> +in your desktop environment,
What is bothering me a bit is the entry title "Org-mode is not opening
mailto links in my *default* mail client". The updated variant mostly
discusses changing of defaults.
> +**side comment:** the above paragraph is hard to understand. Would it be
> +possible to add pointers to the discussion of these issues?
I do not follow Emacs development. The source is git commit history and
commit messages rarely have links to discussion or references to bug
tracker.
> Also what
> +is meant by "~browse-url-xdg-open~ was evolving to similar code in
> +2011." Finally, it's not /generally/ true that subprocess
> +applications can't inform Emacs of failures.
The reality is that failures of xdg-open are confusingly quiet. Often
nil is specified as the buffer for standard error (application may spam
with warnings and failed assert). For `start-process' or `make-process'
it is necessary to create a handler that displays message on process
failure. `call-process' with 0 as DESTINATION signals error only if it
can not find the executable otherwise only desktop environment may
notify user about an error.
> I believe that what is
> +meant here is something more like "Notice that applications invoked
> +through =browse-url-<foo>= have no way to notify Emacs if they fail."
> +This makes sense, because browsers don't exit with a bad exit status
> +if they fail to open a URL as expected. -- rpg
It is another sort of errors and browser may show an error page. Notice
that executable may just send a command to an already running process
and to exit almost instantly.
> +which reached the strange conclusion that it is a bug in Gnome utility:
I would not say "reached". The statement appeared in the middle of
discussion and the problem was not fixed that time.
> +**Side comment:** The above paragraph is also difficult to parse.
> +Confusion about what? Lack of error report? What does it mean "has
> +not resulted in changing of code"? I have cut that. Also, which Gnome
> +utility do you mean here? Or did you just mean "a bug in the Gnome
> +desktop"? **End**
Confusion whether nohup wrapper is necessary. It was removed a bit
earlier by a participant of the discussion of the bug 9779 and I believe
that the change was correct since dropping of nohup was accompanied by
other changes. I do not remember what was the name of the gnome utility
that time, maybe gnome-open, currently it is "gio open" but for most of
people it is anyway hidden behind xdg-open and namely xdg-open usually
becomes the target to blame.
> On 7 Feb 2022, at 10:59, Max Nikulin wrote:
>> +#+begin_comment
>> +Recurring source of pain is interaction of Emacs function with
Notice that comment is dropped during export, it is visible only to
contributors who will decide to update the entry. I am unsure where
such note should be placed: separate worg page, emacswiki site, etc.
Even Org has several files with quite similar problems with launching of
viewers.
>> +[[elisp:(customize-variable 'org-link-parameters)][=M-x customize-variable RET org-link-parameters RET=]], e.g. for
Actually I am unsure if customization of `org-link-parameters' should be
recommended. The interface contains a lot of entries actually added by
org packages. Maybe it is better to suggest
(with-eval-after-load 'ol
(org-link-set-parameters
;; ...
>> +#+begin_src elisp :results none
>> +("mailto"
>> + :follow (lambda (path)
>> + (let ((url (concat "mailto:" path)))
>> + ;; platform-specific choice of function
>> + (start-process (concat "open " url) nil
>> + "open" "-a" "Thunderbird" "--args" url))))
^^^^^^^
Notice this addition, I can not test if it really works.
>> #+end_src
[-- Attachment #2: 0001-FAQ-Update-suggestion-for-mailto-link-handlers.patch --]
[-- Type: text/x-patch, Size: 6771 bytes --]
From 8eeb353a45521ab34cced37971e4455f870671c9 Mon Sep 17 00:00:00 2001
From: Max Nikulin <manikulin@gmail.com>
Date: Mon, 7 Feb 2022 23:40:37 +0700
Subject: [PATCH] FAQ: Update suggestion for mailto: link handlers
org-faq.org (mailto-links): Mention `org-link-mailto-program' as removed
variable, recommend customization of `browse-url-mailto-function' or
`org-link-parameters' instead.
This change is prepared in cooperation with Robert Goldman <rpgoldman@sift.net>,
see https://list.orgmode.org/FEAD92A6-87DE-4CFF-8459-E3D012DD3F52@sift.net
for the initial suggestion.
---
org-faq.org | 104 ++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 93 insertions(+), 11 deletions(-)
diff --git a/org-faq.org b/org-faq.org
index 4b34560c..323fba6b 100644
--- a/org-faq.org
+++ b/org-faq.org
@@ -1926,21 +1926,103 @@ For example:
#+index: Link!Mailto
-You can customize the function org-mode uses to open mailto links by
-setting the variable =org-link-mailto-program=:
+Org calls the ~browse-url~ function for =mailto:= links, so it should obey
+your Emacs configuration. If something goes wrong then
+[[info:emacs#Browse-URL][info "(emacs) Browse-URL"]] may be a good starting point.
+
+By default mail is composed in an Emacs buffer. If you prefer some
+external application instead then set ~browse-url-mailto-function~ to
+~nil~, e.g. using
+[[elisp:(customize-variable 'browse-url-mailto-function)][=M-x customize-variable RET browse-url-mailto-function RET=]]
+and =mailto:= links will be opened according to the value of
+~browse-url~browser-function~.
+
+If you wish to compose messages in Emacs then consult
+[[info:emacs#Mail Methods][info "(emacs) Mail Methods"]]. Check that ~browse-url-mailto-function~
+has its default value ~browse-url-mail~. Emacs has several mail
+packages and the active one is determined by the ~mail-user-agent~ variable,
+so the next step may be to configure it to, e.g., =gnus-user-agent= using
+[[elisp:(customize-variable 'mail-user-agent)][=M-x customize-variable RET mail-user-agent RET=]].
+
+If you prefer an external application that is /not/ the one configured
+in your desktop environment,
+then you should write a custom URL handler function. Be
+careful, try to avoid using the shell (e.g. ~shell-command~ function) since it
+is easy to mess up the escaping of the URL argument and allow
+execution of arbitrary code: some parts of links may be treated as
+shell specials. Choosing a proper function to invoke an external
+application is a non-trivial task even for seasoned Emacs developers.
+When possible use an option like double dash =--= before URLs that forces
+interpreting following as arguments even when a string resembles some option
+due to a leading dash.
+For examples, consult the source code of ~browse-url-xdg-open~,
+~browse-url-default-macosx-browser~, or
+~browse-url-default-windows-browser~ for GNU/Linux,
+Mac\nbsp{}OS\nbsp{}X, or MS\nbsp{}Windows platforms accordingly.
-=M-x customize-variable org-link-mailto-program=
-
-The default function called is =browse-url=, which opens a mail
-composition buffer within Emacs. The type of buffer opened by
-browse-url depends on the setting of the variable =mail-user-agent=.
-Thus, if you want to ensure that mailto links use Gnus to open a
-message buffer, you could add the following to your =.emacs=:
+#+begin_comment
+A recurring source of pain for users is the interaction
+of Emacs functions with the
+=xdg-open=, =kde-open5=, and =gio open= utilities on Linux. While
+~call-process~ with 0 as ~DESTINATION~ argument for
+~browse-url-generic~ was settled in 2004, the introduced later
+~browse-url-xdg-open~ function was evolving to similar code in 2011.
+See commit history for earlier steps. Notice that with the ~call-process~
+approach the application has no chance to notify Emacs if it fails.
+
+Example of confusion with techniques to launch applications is comment
+[[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9779#29]]
+that falsely points out to missed =nohup= despite of usage the ~call-process~ function.
+Its choice is not intuitive since normally ~call-process~
+waits till process completion. However with 0 (not ~nil~!) argument
+it creates a completely detached process.
+It is asynchronous ~start-process~
+and ~make~process~ functions that create a pty by default and so kill
+children by =SIGHUP= signal when the main process exits after fork.
+There was
+a lengthy thread "& and M-& to run programs asynchronously" in 2009
+with a comment containing a strange conclusion that immediate exit is a bug
+in the Gnome CLI utility launching MIME handler:
+[[https://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00279.html]].
+
+~org-open-file~ and ~mailcap-view-mime~ functions create asynchronous processes to launch
+applications (shell is required by mailcap RFC-1524 so the code does not follow the recommendation given above),
+but they use pipe processes instead of default pty ones.
+This approach has downsides as well. In some cases application can not run longer
+than Emacs (a prompt to confirm its termination may appear on attempt to quit from Emacs).
+Some applications might cause high CPU consumption by Emacs. See
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44824 and
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=12972 for details.
+
+Keep these considerations in mind if you decide to add more examples.
+#+end_comment
-#+begin_src elisp
-(setq mail-user-agent 'gnus-user-agent)
+When you are ready with a function launching your preferred handler
+for =mailto:= links, you should add it to ~browse-url-handlers~
+associations list for Emacs-28.1 and newer or to
+~browse-url-browser-function~ for earlier versions by customizing the
+suitable variable.
+
+If you are going to change handler just in Org mode in a way that does
+not affect rest of Emacs than you can adjust it through
+[[elisp:(customize-variable 'org-link-parameters)][=M-x customize-variable RET org-link-parameters RET=]], e.g. for
+Mac\nbsp{}OS\nbsp{}X link property may be following (on Linux to avoid
+silent failures add ~(process-connection-type nil)~ to ~let~ variables
+or use ~call-process~ with =0= as the =DESTINATION= argument):
+
+#+begin_src elisp :results none
+("mailto"
+ :follow (lambda (path)
+ (let ((url (concat "mailto:" path)))
+ ;; platform-specific choice of function
+ (start-process (concat "open " url) nil
+ "open" "-a" "Thunderbird" "--args" url))))
#+end_src
+In earlier versions Org had ~org-link-mailto-program~ variable, but it
+was removed, so its customization does not work any more. Update your
+init file if you noticed this variable.
+
** Can I use CamelCase links?
:PROPERTIES:
:CUSTOM_ID: CamelCase-links
--
2.25.1
[-- Attachment #3: faq-mailto-changes-since-2022-02-11-goldman.diff --]
[-- Type: text/x-patch, Size: 6285 bytes --]
commit e151f6d800e216ba2586b309f777efed81197572
Author: Max Nikulin <manikulin@gmail.com>
Date: Mon Feb 14 19:21:54 2022 +0700
[DRAFT] Diff to Robert P. Goldman's revision
This is not a real patch. The intention is to show
changes made in response to the review.
diff --git a/org-faq.org b/org-faq.org
index 1819326c..323fba6b 100644
--- a/org-faq.org
+++ b/org-faq.org
@@ -1932,7 +1932,7 @@ your Emacs configuration. If something goes wrong then
By default mail is composed in an Emacs buffer. If you prefer some
external application instead then set ~browse-url-mailto-function~ to
-=nil=, e.g. using
+~nil~, e.g. using
[[elisp:(customize-variable 'browse-url-mailto-function)][=M-x customize-variable RET browse-url-mailto-function RET=]]
and =mailto:= links will be opened according to the value of
~browse-url~browser-function~.
@@ -1940,9 +1940,9 @@ and =mailto:= links will be opened according to the value of
If you wish to compose messages in Emacs then consult
[[info:emacs#Mail Methods][info "(emacs) Mail Methods"]]. Check that ~browse-url-mailto-function~
has its default value ~browse-url-mail~. Emacs has several mail
-packages, so the next step may be to configure that variable to, e.g.,
- =gnus-user-agent= using
-[[elisp:(customize-variable 'mail-user-agent)][=M-x customize-variable RET mail-user-agent RET=]] .
+packages and the active one is determined by the ~mail-user-agent~ variable,
+so the next step may be to configure it to, e.g., =gnus-user-agent= using
+[[elisp:(customize-variable 'mail-user-agent)][=M-x customize-variable RET mail-user-agent RET=]].
If you prefer an external application that is /not/ the one configured
in your desktop environment,
@@ -1952,57 +1952,48 @@ is easy to mess up the escaping of the URL argument and allow
execution of arbitrary code: some parts of links may be treated as
shell specials. Choosing a proper function to invoke an external
application is a non-trivial task even for seasoned Emacs developers.
+When possible use an option like double dash =--= before URLs that forces
+interpreting following as arguments even when a string resembles some option
+due to a leading dash.
For examples, consult the source code of ~browse-url-xdg-open~,
~browse-url-default-macosx-browser~, or
~browse-url-default-windows-browser~ for GNU/Linux,
Mac\nbsp{}OS\nbsp{}X, or MS\nbsp{}Windows platforms accordingly.
#+begin_comment
-A recurring source of pain for Emacs users is the interaction
+A recurring source of pain for users is the interaction
of Emacs functions with the
=xdg-open=, =kde-open5=, and =gio open= utilities on Linux. While
~call-process~ with 0 as ~DESTINATION~ argument for
-~browse-url-generic~ was settled in 2004, ~browse-url-xdg-open~ was
-evolving to similar code in 2011. Notice that the application has no
-chance to notify Emacs if it fails.
-
-**side comment:** the above paragraph is hard to understand. Would it be
-possible to add pointers to the discussion of these issues? Also what
-is meant by "~browse-url-xdg-open~ was evolving to similar code in
-2011." Finally, it's not /generally/ true that subprocess
-applications can't inform Emacs of failures. I believe that what is
-meant here is something more like "Notice that applications invoked
-through =browse-url-<foo>= have no way to notify Emacs if they fail."
-This makes sense, because browsers don't exit with a bad exit status
-if they fail to open a URL as expected. -- rpg
-
-**End of side comment**
-
-Example of this confusion:
-[[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9779#29]]
+~browse-url-generic~ was settled in 2004, the introduced later
+~browse-url-xdg-open~ function was evolving to similar code in 2011.
+See commit history for earlier steps. Notice that with the ~call-process~
+approach the application has no chance to notify Emacs if it fails.
+
+Example of confusion with techniques to launch applications is comment
+[[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9779#29]]
+that falsely points out to missed =nohup= despite of usage the ~call-process~ function.
+Its choice is not intuitive since normally ~call-process~
+waits till process completion. However with 0 (not ~nil~!) argument
+it creates a completely detached process.
+It is asynchronous ~start-process~
+and ~make~process~ functions that create a pty by default and so kill
+children by =SIGHUP= signal when the main process exits after fork.
There was
a lengthy thread "& and M-& to run programs asynchronously" in 2009
-which reached the strange conclusion that it is a bug in Gnome utility:
-[[https://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00279.html]]
-
-**Side comment:** The above paragraph is also difficult to parse.
-Confusion about what? Lack of error report? What does it mean "has
-not resulted in changing of code"? I have cut that. Also, which Gnome
-utility do you mean here? Or did you just mean "a bug in the Gnome
-desktop"? **End**
-
-~org-open-file~ and ~mailcap-view-mime~ use another approach to launch
-applications (shell is required by mailcap RFC-1524). This approach
-can lead to user confusion such as:
-A prompt to kill
-such applications' process may appear to users to be a prompt to quit
-Emacs;
-some applications might cause high CPU consumption by Emacs. See
+with a comment containing a strange conclusion that immediate exit is a bug
+in the Gnome CLI utility launching MIME handler:
+[[https://lists.gnu.org/archive/html/emacs-devel/2009-07/msg00279.html]].
+
+~org-open-file~ and ~mailcap-view-mime~ functions create asynchronous processes to launch
+applications (shell is required by mailcap RFC-1524 so the code does not follow the recommendation given above),
+but they use pipe processes instead of default pty ones.
+This approach has downsides as well. In some cases application can not run longer
+than Emacs (a prompt to confirm its termination may appear on attempt to quit from Emacs).
+Some applications might cause high CPU consumption by Emacs. See
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44824 and
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=12972 for details.
-**Please review the above edits.**
-
Keep these considerations in mind if you decide to add more examples.
#+end_comment
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v3] Fix FAQ entry about mailto links.
2022-02-14 13:22 ` [PATCH v3] " Max Nikulin
@ 2022-02-16 1:29 ` Robert Goldman
2022-02-25 12:20 ` Max Nikulin
0 siblings, 1 reply; 9+ messages in thread
From: Robert Goldman @ 2022-02-16 1:29 UTC (permalink / raw)
To: Max Nikulin; +Cc: emacs-orgmode
On 14 Feb 2022, at 7:22, Max Nikulin wrote:
> On 11/02/2022 00:42, Robert Goldman wrote:
>>
>> There are a couple of minor issues in the patch you sent (including a
>> couple of grammatical errors), so attached is a revision.
>
> Great. Thank you, Robert, it exact reason why I asked for a review.
>
> I am sending the updated patch and a diff to your edits to highlight
> my latest changes.
Hello, Max --
Some responses below, then I think merging would be fine. I am losing my
ability and energy to process these patch files, honestly.
>
>> From e7f0f2c51950b3c0f181191c5210ea26cafc03f4 Mon Sep 17 00:00:00
>> 2001
>> From: "Robert P. Goldman" <rpgoldman@sift.net>
>> Date: Thu, 10 Feb 2022 11:20:36 -0600
>> Subject: [PATCH 2/4] Revert "Fix FAQ entry about mailto links."
>>
>> This reverts commit b8158af7a839a751e6976cd95d18a5d5f199024a.
>
> Would you like to have you original version in git history? For me it
> is not a problem to make my patch updating yours one without reverting
> the original commit (create another branch, cherry-pick commits,
> resolve conflict to the latest state). Otherwise you can avoid
> unnecessary commits in your local repository by either applying my
> patch to a new branch or using "git rebase -i master" to drop
> unnecessary commits.
I don't need to be credited; it would be fine to just merge in whatever
way is convenient.
>
>> +If you prefer an external application that is /not/ the one
>> configured
>> +in your desktop environment,
>
> What is bothering me a bit is the entry title "Org-mode is not opening
> mailto links in my *default* mail client". The updated variant mostly
> discusses changing of defaults.
The whole thing addresses how to open mailto links in the default mail
client. It's not our fault that figuring out how org-mode dispatches
these links and then what goes on inside browse-url is so complicated!
>> +**side comment:** the above paragraph is hard to understand. Would
>> it be
>> +possible to add pointers to the discussion of these issues?
>
> I do not follow Emacs development. The source is git commit history
> and commit messages rarely have links to discussion or references to
> bug tracker.
To be honest, I'm not sure what value this whole comment section has.
Given that, I'm ok with whatever you want to do: leave it as it, try to
fix it, or just remove it altogether. I actually think that removing it
might be best. It's confusing, and will eventually become out-of-date,
and who will update it?
I'll leave it to you to choose.
Best,
R
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3] Fix FAQ entry about mailto links.
2022-02-16 1:29 ` Robert Goldman
@ 2022-02-25 12:20 ` Max Nikulin
2022-03-12 14:35 ` Max Nikulin
0 siblings, 1 reply; 9+ messages in thread
From: Max Nikulin @ 2022-02-25 12:20 UTC (permalink / raw)
To: Robert Goldman; +Cc: emacs-orgmode
On 16/02/2022 08:29, Robert Goldman wrote:
> On 14 Feb 2022, at 7:22, Max Nikulin wrote:
>> On 11/02/2022 00:42, Robert Goldman wrote:
>>
>> I am sending the updated patch and a diff to your edits to highlight
>> my latest changes.
>
> Some responses below, then I think merging would be fine. I am losing my
> ability and energy to process these patch files, honestly.
One patch was for clean master HEAD state, another file was diff in
comparison to your variant. The latter could be applied on the top of
your patches or one could just read it to see changes.
> To be honest, I'm not sure what value this whole comment section has.
> Given that, I'm ok with whatever you want to do: leave it as it, try to
> fix it, or just remove it altogether. I actually think that removing it
> might be best. It's confusing, and will eventually become out-of-date,
> and who will update it?
I pushed the patch without comment block. I decided to suggest
`org-link-set-parameters' instead of customization of
`org-link-parameters'. See updated variant at
https://orgmode.org/worg/org-faq.html#mailto-links.
Robert, thank you for suggesting corrections and for reviewing my patches.
P.S. I was surprised that Apple does not provide online version of man
pages for MacOS utilities.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3] Fix FAQ entry about mailto links.
2022-02-25 12:20 ` Max Nikulin
@ 2022-03-12 14:35 ` Max Nikulin
0 siblings, 0 replies; 9+ messages in thread
From: Max Nikulin @ 2022-03-12 14:35 UTC (permalink / raw)
To: emacs-orgmode
On 25/02/2022 19:20, Max Nikulin wrote:
>
> I pushed the patch without comment block. I decided to suggest
> `org-link-set-parameters' instead of customization of
> `org-link-parameters'. See updated variant at
> https://orgmode.org/worg/org-faq.html#mailto-links.
This patch should be removed from the list of pending ones on
https://updates.orgmode.org/ so
Applied
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix FAQ entry about mailto links.
2022-01-06 18:34 [PATCH] Fix FAQ entry about mailto links Robert Goldman
2022-01-07 11:03 ` Max Nikulin
@ 2022-03-12 15:50 ` Max Nikulin
1 sibling, 0 replies; 9+ messages in thread
From: Max Nikulin @ 2022-03-12 15:50 UTC (permalink / raw)
To: emacs-orgmode
Sorry for the noise. Another attempt to remove the record from
https://updates.orgmode.org
Canceled.
Another variant based on
https://list.orgmode.org/9437ade2-af18-f97e-8790-a2df27c9017c@gmail.com
has been committed.
On 07/01/2022 01:34, Robert Goldman wrote:
>
> The old entry referred to the variable =org-link-mailto-program= which
> was removed from org-mode almost eight years ago! See org-mode commit
> b9f2e17f07faf01109fc6f7f1eb5a34e0f97eafb
> ---
> org-faq.org | 18 +++++++++++++++---
> 1 file changed, 15 insertions(+), 3 deletions(-)
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-03-12 15:51 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-06 18:34 [PATCH] Fix FAQ entry about mailto links Robert Goldman
2022-01-07 11:03 ` Max Nikulin
2022-02-07 16:59 ` Max Nikulin
2022-02-10 17:42 ` Robert Goldman
2022-02-14 13:22 ` [PATCH v3] " Max Nikulin
2022-02-16 1:29 ` Robert Goldman
2022-02-25 12:20 ` Max Nikulin
2022-03-12 14:35 ` Max Nikulin
2022-03-12 15:50 ` [PATCH] " Max Nikulin
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).