From 28a9e35ddb2270318f76bc96b026ae313f8b3995 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Mon, 17 Mar 2014 02:19:27 +0100 Subject: [PATCH] org.el (org-do-emphasis-faces): Explicitly prevent nested emphasis MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * org.el (org-do-emphasis-faces): Explicitly prevent nested emphasis. Thanks to Sébastien Vauban for reporting this. --- lisp/org.el | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 24d05106a..10669ebf6 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5668,24 +5668,30 @@ The time stamps may be either active or inactive.") "Run through the buffer and add overlays to emphasized strings." (let (rtn a) (while (and (not rtn) (re-search-forward org-emph-re limit t)) - (if (not (= (char-after (match-beginning 3)) - (char-after (match-beginning 4)))) - (progn - (setq rtn t) - (setq a (assoc (match-string 3) org-emphasis-alist)) - (font-lock-prepend-text-property (match-beginning 2) (match-end 2) - 'face - (nth 1 a)) - (and (nth 2 a) - (org-remove-flyspell-overlays-in - (match-beginning 0) (match-end 0))) - (add-text-properties (match-beginning 2) (match-end 2) - '(font-lock-multiline t org-emphasis t)) - (when org-hide-emphasis-markers - (add-text-properties (match-end 4) (match-beginning 5) - '(invisible org-link)) - (add-text-properties (match-beginning 3) (match-end 3) - '(invisible org-link))))) + (let* ((border (char-after (match-beginning 3))) + (bre (regexp-quote (char-to-string border)))) + (if (and (not (= border (char-after (match-beginning 4)))) + (not (save-match-data + (string-match (concat bre ".*" bre) + (replace-regexp-in-string + "\n" " " + (substring (match-string 2) 1 -1)))))) + (progn + (setq rtn t) + (setq a (assoc (match-string 3) org-emphasis-alist)) + (font-lock-prepend-text-property (match-beginning 2) (match-end 2) + 'face + (nth 1 a)) + (and (nth 2 a) + (org-remove-flyspell-overlays-in + (match-beginning 0) (match-end 0))) + (add-text-properties (match-beginning 2) (match-end 2) + '(font-lock-multiline t org-emphasis t)) + (when org-hide-emphasis-markers + (add-text-properties (match-end 4) (match-beginning 5) + '(invisible org-link)) + (add-text-properties (match-beginning 3) (match-end 3) + '(invisible org-link)))))) (goto-char (1+ (match-beginning 0)))) rtn)) -- 2.11.4.GIT