diff options
| author | Wilfred Hughes <me@wilfred.me.uk> | 2019-03-15 09:54:45 +0000 |
|---|---|---|
| committer | Wilfred Hughes <me@wilfred.me.uk> | 2019-03-16 15:26:36 +0000 |
| commit | 9f1d08c3d4292f778b14838da35701714ea0e231 (patch) | |
| tree | 0b4a22ec05940b3327792a5373e00e2b529bd0cf | |
| parent | d155add4af76df4b342250dec7ced57f58400465 (diff) | |
Don't interpret command references inside doublequoted strings
Helps with #197
| -rw-r--r-- | helpful.el | 10 | ||||
| -rw-r--r-- | test/helpful-unit-test.el | 10 |
2 files changed, 20 insertions, 0 deletions
@@ -964,6 +964,16 @@ unescaping too." (while (not (eobp)) (cond ((looking-at + (rx "\"")) + (looking-at + ;; Text of the form "foo" + (rx "\"")) + ;; Don't do anything with literal strings. + ;; Step over opening doublequote. + (forward-char 1) + ;; Move past closing doublequote. + (search-forward "\"")) + ((looking-at ;; Text of the form \=X (rx "\\=")) ;; Remove the escaping, then step over the escaped char. diff --git a/test/helpful-unit-test.el b/test/helpful-unit-test.el index 4f2379b..6d1e42d 100644 --- a/test/helpful-unit-test.el +++ b/test/helpful-unit-test.el @@ -65,6 +65,16 @@ (should (not (s-contains-p "\\=" formatted-docstring))))) +(ert-deftest helpful--docstring-strings () + "Double-quoted strings should be treated literally." + (let* ((formatted-docstring + (helpful--format-docstring + "hello \"\\[foo]\" world"))) + ;; This test will fail in a local Emacs instance that has modified + ;; minibuffer keybindings. + (should + (string-equal formatted-docstring "hello \"\\[foo]\" world")))) + (ert-deftest helpful--docstring-keymap () "Handle keymap references in docstrings." (let* ((formatted-docstring |
