]> git.eshelyaron.com Git - emacs.git/commitdiff
Make find-sibling-file-search non-private
authorLars Ingebrigtsen <larsi@gnus.org>
Sun, 12 Jun 2022 10:08:32 +0000 (12:08 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sun, 12 Jun 2022 10:08:41 +0000 (12:08 +0200)
* lisp/files.el (find-sibling-file-search): Rename to be non-private.
(find-sibling-file): Adjust call.

lisp/files.el

index 945b7ef73716141f618d51776eb8685cc4de2216..eb1b90fc2994be067c05c744448698d274780c2e 100644 (file)
@@ -7321,7 +7321,8 @@ The \"sibling\" file is defined by the `find-sibling-rules' variable."
                  (list buffer-file-name)))
   (unless find-sibling-rules
     (user-error "The `find-sibling-rules' variable has not been configured"))
-  (let ((siblings (find-sibling-file--search (expand-file-name file))))
+  (let ((siblings (find-sibling-file-search (expand-file-name file)
+                                            find-sibling-rules)))
     (cond
      ((null siblings)
       (user-error "Couldn't find any sibling files"))
@@ -7336,16 +7337,19 @@ The \"sibling\" file is defined by the `find-sibling-rules' variable."
          (completing-read (format-prompt "Find file" (car relatives))
                           relatives nil t nil nil (car relatives))))))))
 
-(defun find-sibling-file--search (file)
+(defun find-sibling-file-search (file &optional rules)
+  "Return a list of FILE's \"siblings\"
+RULES should be a list on the form defined by `find-sibling-rules' (which
+see), and if nil, defaults to `find-sibling-rules'."
   (let ((results nil))
-    (pcase-dolist (`(,match . ,expansions) find-sibling-rules)
+    (pcase-dolist (`(,match . ,expansions) (or rules find-sibling-rules))
       ;; Go through the list and find matches.
       (when (string-match match file)
         (let ((match-data (match-data)))
           (dolist (expansion expansions)
             (let ((start 0))
               ;; Expand \\1 forms in the expansions.
-              (while (string-match "\\\\\\([0-9]+\\)" expansion start)
+              (while (string-match "\\\\\\([&0-9]+\\)" expansion start)
                 (let ((index (string-to-number (match-string 1 expansion))))
                   (setq start (match-end 0)
                         expansion