[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#31351: 27.0; Cannot send bug report with Outlook if text includes ba

From: Eli Zaretskii
Subject: bug#31351: 27.0; Cannot send bug report with Outlook if text includes backquoted sexps
Date: Thu, 03 May 2018 21:13:20 +0300

> Date: Wed, 2 May 2018 17:55:14 -0700 (PDT)
> From: Drew Adams <address@hidden>
> I tried several times to send the bug report that you find in bug
> #31350.  I could not do so with Emacs 25 or later.  My mail client is
> Outlook 2016.
> Each time I tried, I got this Outlook error message:
>   The command line argument is not valid.
>   Verify the switch you are using.
> I have no idea what the command line is that is sent to Outlook.
> I finally succeeded in sending the bug report by deleting the two code
> lines from it that you see in bug #31350 after this line of text:
>   These are the two clauses in question:
> Please refer to that bug for the two lines of code.
> I deleted those two lines and was able to get the bug report from Emacs
> to a new Outlook message, and I inserted the two code lines into that
> Outlook message, then sent it.

I see the problem, but I'm not sure it's the same problem, because it
doesn't fit your description in two details: (a) the problem I see is
not caused by anything in the message body -- in fact, I can reproduce
the problem with a "bug report" whose body consists of just "foo", in
addition to the details collected by the command about my system; and
(b) sending that problematic bug report works just fine in Emacs 25
and all older versions, and is broken only in Emacs 26 and later.

The problem I see is not caused by backticks in the body, it is caused
by quotes ".." in the Subject of the bug.  (I don't see how the body
could have any effect on launching Outlook, since we pass the body
through the system clipboard, and Outlook doesn't see it until you
paste the body into Outlook.  So it cannot possibly prevent Outlook
from starting correctly.)

To fix the problem I see, I installed on the release branch a fix,
which is reproduced below.  Please re-verify that you indeed see a
different problem -- I expect the patch below not to solve the problem
if so.


diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 98b0acf..a84a7b1 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -878,7 +878,21 @@ browse-url-default-windows-browser
           (error "Browsing URLs is not supported on this system")))
        ((eq system-type 'cygwin)
         (call-process "cygstart" nil nil nil url))
-       (t (w32-shell-execute "open" (url-unhex-string url)))))
+       (t
+         (w32-shell-execute "open"
+                            ;; w32-shell-execute passes file:// URLs
+                            ;; to APIs that expect file names, so we
+                            ;; need to unhex any %nn encoded
+                            ;; characters in the URL.  We don't do
+                            ;; that for other URLs; in particular,
+                            ;; default Windows mail client barfs on
+                            ;; quotes in the MAILTO URLs, so we prefer
+                            ;; to leave the URL with its embedded %nn
+                            ;; encoding intact.
+                            (if (eq t (compare-strings url nil 7
+                                                       "file://" nil nil))
+                                (url-unhex-string url)
+                              url)))))
 (defun browse-url-default-macosx-browser (url &optional _new-window)
   "Invoke the macOS system's default Web browser.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]