branch: externals/auctex-label-numbers
commit 2c3cca8d2408a7b1144554e63e6f928870beec10
Author: Paul Nelson <[email protected]>
Commit: Paul Nelson <[email protected]>

    Handle xr's nocite option
    
    * auctex-label-numbers.el
    (auctex-label-numbers--external-document-regexp): Allow an empty
    prefix and recognize the nocite option.
    * tests/auctex-label-numbers-tests.el
    (test-auctex-label-numbers--external-document-regexp): Test it.
---
 auctex-label-numbers.el             | 2 +-
 tests/auctex-label-numbers-tests.el | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/auctex-label-numbers.el b/auctex-label-numbers.el
index 81dc35586da..a2454dcd40f 100644
--- a/auctex-label-numbers.el
+++ b/auctex-label-numbers.el
@@ -104,7 +104,7 @@ to find the corresponding aux files."
                  (const :tag "Don't search external documents" nil)))
 
 (defconst auctex-label-numbers--external-document-regexp
-  "\\\\external\\(?:cite\\)?document\\(?:\\[\\([^]]+\\)\\]\\)?{\\([^}]+\\)}"
+  
"\\\\external\\(?:cite\\)?document\\(?:\\[\\([^]]*\\)\\]\\)?\\(?:\\[nocite\\]\\)?{\\([^}]+\\)}"
   "Regexp for \\externaldocument commands.
 Optional prefix is (match-string 1), filename is (match-string 2).")
 
diff --git a/tests/auctex-label-numbers-tests.el 
b/tests/auctex-label-numbers-tests.el
index 8a23cd8c09c..812706c370e 100644
--- a/tests/auctex-label-numbers-tests.el
+++ b/tests/auctex-label-numbers-tests.el
@@ -61,11 +61,15 @@
   (should (equal (match-string 1 "\\externaldocument[ch1:]{chapter1-file}") 
"ch1:"))
   (should (equal (match-string 2 "\\externaldocument[ch1:]{chapter1-file}") 
"chapter1-file"))
 
+  ;; Test the nocite option with an empty prefix
+  (should (string-match auctex-label-numbers--external-document-regexp
+                        "\\externaldocument[][nocite]{nocitefile}"))
+  (should (equal (match-string 1 "\\externaldocument[][nocite]{nocitefile}") 
""))
+  (should (equal (match-string 2 "\\externaldocument[][nocite]{nocitefile}") 
"nocitefile"))
+
   ;; Test that it doesn't match invalid syntax
   (should-not (string-match auctex-label-numbers--external-document-regexp
                             "\\externaldocument{missingbracket"))
-  (should-not (string-match auctex-label-numbers--external-document-regexp
-                            "\\externaldocument[]{empty}")) ; Empty optional 
argument
   (should-not (string-match auctex-label-numbers--external-document-regexp
                             "\\externaldocument[prefix]nobraces")))
 

Reply via email to