branch: externals/org commit b3cc2f793bbc1339339e0f285604f2b8fdd5bc06 Merge: 23138b9 30a6126 Author: Nicolas Goaziou <m...@nicolasgoaziou.fr> Commit: Nicolas Goaziou <m...@nicolasgoaziou.fr>
Merge branch 'bugfix' --- lisp/oc.el | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/lisp/oc.el b/lisp/oc.el index ce89f7b..c61913c 100644 --- a/lisp/oc.el +++ b/lisp/oc.el @@ -1141,17 +1141,14 @@ and must return either a string, an object, or a secondary string." ;;; Internal interface with fontification (activate capability) -(defun org-cite-fontify-default (datum) - "Fontify DATUM with `org-cite' and `org-cite-key' face. -DATUM is a citation object, or a citation reference. In any case, apply -`org-cite' face on the whole citation, and `org-cite-key' face on each key." - (let* ((cite (if (eq 'citation-reference (org-element-type datum)) - (org-element-property :parent datum) - datum)) - (beg (org-element-property :begin cite)) - (end (org-with-point-at (org-element-property :end cite) - (skip-chars-backward " \t") - (point)))) +(defun org-cite-fontify-default (cite) + "Fontify CITE with `org-cite' and `org-cite-key' faces. +CITE is a citation object. The function applies `org-cite' face +on the whole citation, and `org-cite-key' face on each key." + (let ((beg (org-element-property :begin cite)) + (end (org-with-point-at (org-element-property :end cite) + (skip-chars-backward " \t") + (point)))) (add-text-properties beg end '(font-lock-multiline t)) (add-face-text-property beg end 'org-cite) (dolist (reference (org-cite-get-references cite)) @@ -1163,16 +1160,20 @@ DATUM is a citation object, or a citation reference. In any case, apply "Activate citations from up to LIMIT buffer position. Each citation encountered is activated using the appropriate function from the processor set in `org-cite-activate-processor'." - (let ((name org-cite-activate-processor)) - (let ((activate - (or (and name - (org-cite-processor-has-capability-p name 'activate) - (org-cite-processor-activate (org-cite--get-processor name))) - #'org-cite-fontify-default))) - (while (re-search-forward org-element-citation-prefix-re limit t) - (let ((cite (org-with-point-at (match-beginning 0) - (org-element-citation-parser)))) - (when cite (save-excursion (funcall activate cite)))))))) + (let* ((name org-cite-activate-processor) + (activate + (or (and name + (org-cite-processor-has-capability-p name 'activate) + (org-cite-processor-activate (org-cite--get-processor name))) + #'org-cite-fontify-default))) + (when (re-search-forward org-element-citation-prefix-re limit t) + (let ((cite (org-with-point-at (match-beginning 0) + (org-element-citation-parser)))) + (when cite + (funcall activate cite) + ;; Move after cite object and make sure to return + ;; a non-nil value. + (goto-char (org-element-property :end cite))))))) ;;; Internal interface with Org Export library (export capability)