[Top][All Lists]

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

Re: [O] [PATCH] Fix the single quote printed in the message printed by o

From: Kaushal Modi
Subject: Re: [O] [PATCH] Fix the single quote printed in the message printed by org-table-edit-formulas
Date: Thu, 10 Mar 2016 22:22:41 -0500

On Thu, Mar 10, 2016 at 8:39 PM, Paul Eggert <address@hidden> wrote:
Help strings are considered documentation, so you need to escape special characters in help-echo property strings the same way you'd escape them in doc strings. Something like this:

(let* ((str1 "\nhello")
       (echo-str1 "left single quote (`) right single quote (') grave accent (\\=`) apostrophe (\\=') kill-region (\\[kill-region])")
  (let* ((b (+ 1 (point)))
         (e (+ b (string-width str1))))
    (insert str1)
    (setq ov (make-overlay b e)))
  (overlay-put ov 'help-echo echo-str1))

Thanks Paul. That was very educational. So it turns out that we do not need substitute-command-keys at all for help-echo text.

Below is now the latest patch = previous patch + help-echo straight quote fix.

From a897b6e37708cd836ea9576b43006075af80e062 Mon Sep 17 00:00:00 2001
From: Kaushal Modi <address@hidden>
Date: Thu, 10 Mar 2016 22:12:44 -0500
Subject: [PATCH] Display quotes in key-bindings as straight quotes

* lisp/org-agenda.el (org-agenda-show-the-flagging-note):
* lisp/org-footnote.el (org-footnote-goto-definition):
* lisp/org-table.el (org-table-edit-formulas):
(org-table-align): Straight quote fix

* lisp/org-protocol.el (org-protocol-create-for-org):
* lisp/org-table.el (org-table-sum): Minor reformatting

Fix the quote style displayed when key-bindings are shown in
the echo via (message .. (substitute-command-keys ..)).

Starting from emacs 25.1, a straight quote is rendered as a right-curly
quote by default.

So below will render that single quote as curly.

(message "C-c '")

The fix is to print that quote verbatim using the "%s" modifier:

(message "%s" "C-c '")

Also an help-echo text property value was fixed in org-table-align.
substitute-command-keys should not be used in that. Instead \\[COMMAND]
should be used directly in the string.
 lisp/org-agenda.el   |  5 +++--
 lisp/org-footnote.el |  7 +++----
 lisp/org-protocol.el |  2 +-
 lisp/org-table.el    | 17 +++++++----------
 4 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 876ea44..cd69c74 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -10107,8 +10107,9 @@ tag and (if present) the flagging note."
  (replace-match "\n" t t))
       (goto-char (point-min))
       (select-window win)
-      (message (substitute-command-keys "Flagging note pushed to kill ring.  \
-Press \\[org-agenda-show-the-flagging-note] again to remove tag and note")))))
+      (message "%s" (substitute-command-keys "Flagging note pushed to \
+kill ring.  Press \\[org-agenda-show-the-flagging-note] again to remove \
+tag and note")))))
 (defun org-agenda-remove-flag (marker)
   "Remove the FLAGGED tag and any flagging note in the entry."
diff --git a/lisp/org-footnote.el b/lisp/org-footnote.el
index e80685a..a847326 100644
--- a/lisp/org-footnote.el
+++ b/lisp/org-footnote.el
@@ -531,10 +531,9 @@ value if point was successfully moved."
     (goto-char (match-end 0))
     (org-show-context 'link-search)
     (when (derived-mode-p 'org-mode)
-      (message
-       (substitute-command-keys
- "Edit definition and go back with `\\[org-mark-ring-goto]' or, if \
-unique, with `\\[org-ctrl-c-ctrl-c]'.")))
+      (message "%s" (substitute-command-keys
+     "Edit definition and go back with \
+`\\[org-mark-ring-goto]' or, if unique, with `\\[org-ctrl-c-ctrl-c]'.")))
 (defun org-footnote-goto-previous-reference (label)
diff --git a/lisp/org-protocol.el b/lisp/org-protocol.el
index a249c9e..6510733 100644
--- a/lisp/org-protocol.el
+++ b/lisp/org-protocol.el
@@ -669,7 +669,7 @@ delegates most of the work to `org-protocol-create'."
   (require 'org-publish)
   (let ((all (or (org-publish-get-project-from-filename buffer-file-name))))
     (if all (org-protocol-create (cdr all))
-      (message "Not in an org-project.  Did mean %s?"
+      (message "Not in an org-project.  Did you mean `%s'?"
 (defun org-protocol-create (&optional project-plist)
diff --git a/lisp/org-table.el b/lisp/org-table.el
index 488c912..df81944 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -795,9 +795,8 @@ When nil, simply write \"#ERROR\" in corrupted fields.")
                    (org-add-props x nil
-                      (substitute-command-keys
-                       "Clipped table field, use \\[org-table-edit-field] to \
-edit.  Full value is:\n")
+                     "Clipped table field, use \\[org-table-edit-field] \
+to edit.  Full value is:\n"
                       (substring-no-properties x)))
                    (let ((l (length x))
                          (f1 (min fmax
@@ -2136,11 +2135,10 @@ If NLAST is a number, only the NLAST fields will actually be summed."
    s diff)
      (format "%.0f:%02.0f:%02.0f" h m s))))
  (kill-new sres)
- (if (org-called-interactively-p 'interactive)
-    (message "%s"
-     (substitute-command-keys
-      (format "Sum of %d items: %-20s     (\\[yank] will insert result into buffer)"
-      (length numbers) sres))))
+ (when (org-called-interactively-p 'interactive)
+    (message "%s" (substitute-command-keys
+   (format "Sum of %d items: %-20s     \
+(\\[yank] will insert result into buffer)" (length numbers) sres))))
 (defun org-table-get-number-for-summing (s)
@@ -3591,8 +3589,7 @@ Parameters get priority."
       (when (eq org-table-use-standard-references t)
       (org-goto-line startline)
-      (message
-       (substitute-command-keys "\\<org-mode-map>\
+      (message "%s" (substitute-command-keys "\\<org-mode-map>\
 Edit formulas, finish with `\\[org-ctrl-c-ctrl-c]' or `\\[org-edit-special]'.  \
 See menu for more commands.")))))

Kaushal Modi

reply via email to

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