branch: externals-release/org
commit 3bb0cb9398404291b0ced5d14a2577b4a158432e
Author: Nicolas Goaziou <m...@nicolasgoaziou.fr>
Commit: Nicolas Goaziou <m...@nicolasgoaziou.fr>

    oc: Fix § locator name
    
    * lisp/oc-csl.el (org-cite-csl--label-regexp): § is not a word start,
    so adjust regexp accordingly.  Also fix mistake introduced in
    c4a357f1926ff43545c9891425c94b2771ab4e84.
    (org-cite-csl--parse-reference): Ignore any space after locator name.
---
 lisp/oc-csl.el | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/lisp/oc-csl.el b/lisp/oc-csl.el
index 07916cd..89719d3 100644
--- a/lisp/oc-csl.el
+++ b/lisp/oc-csl.el
@@ -271,10 +271,10 @@ If nil then the Chicago author-date style is used as a 
fallback.")
   ;; Prior to Emacs-27.1 argument of `regexp' form must be a string literal.
   ;; It is the reason why `rx' is avoided here.
   (rx-to-string
-   `(seq word-start
+   `(seq (or line-start space)
          (regexp ,(regexp-opt (mapcar #'car org-cite-csl--label-alist) t))
          (0+ digit)
-         (or word-start line-end space ? ))
+         (or word-end line-end space " "))
    t)
   "Regexp matching a label in a citation reference suffix.
 Label is in match group 1.")
@@ -426,7 +426,9 @@ The result is a association list.  Keys are: `id', 
`prefix',`suffix',
        ((re-search-forward org-cite-csl--label-regexp nil t)
         (setq location-start (match-beginning 0))
         (setq label (cdr (assoc (match-string 1) org-cite-csl--label-alist)))
-        (setq locator-start (match-end 1)))
+        (goto-char (match-end 1))
+        (skip-chars-forward "[:space:] ")
+        (setq locator-start (point)))
        ((re-search-forward (rx digit) nil t)
         (setq location-start (match-beginning 0))
         (setq label "page")

Reply via email to