]> git.eshelyaron.com Git - emacs.git/commitdiff
; Add "src" to the heuristic sub-directory heuristic
authorPhilip Kaludercic <philipk@posteo.net>
Tue, 27 Dec 2022 19:28:05 +0000 (20:28 +0100)
committerPhilip Kaludercic <philipk@posteo.net>
Tue, 27 Dec 2022 20:23:38 +0000 (21:23 +0100)
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Check for "src"
directories, next to "lisp".

lisp/emacs-lisp/package-vc.el

index b01f87d049425b759ce345b4ae2364ff8194fc89..a9fbdfea210b22fc4665be16d60d97700de083b3 100644 (file)
@@ -613,18 +613,21 @@ checkout.  This overrides the `:branch' attribute in PKG-SPEC."
 
     ;; When nothing is specified about a `lisp-dir', then should
     ;; heuristically check if there is a sub-directory with lisp
-    ;; files.  These are conventionally just called "lisp".  If this
-    ;; directory exists and contains non-zero number of lisp files, we
-    ;; will use that instead of `pkg-dir'.
-    (when-let* (((null lisp-dir))
-                (dir (expand-file-name "lisp" pkg-dir))
-                ((file-directory-p dir))
-                ((directory-files dir nil "\\`[^.].+\\.el\\'" t 1)))
-      ;; We won't use `dir', since dir is an absolute path and we
-      ;; don't want `lisp-dir' to depend on the current location of
-      ;; the package installation, ie. to break if moved around the
-      ;; file system or between installations.
-      (setq lisp-dir "lisp"))
+    ;; files.  These are conventionally just called "lisp" or "src".
+    ;; If this directory exists and contains non-zero number of lisp
+    ;; files, we will use that instead of `pkg-dir'.
+    (catch 'done
+      (dolist (name '("lisp" "src"))
+        (when-let* (((null lisp-dir))
+                    (dir (expand-file-name name pkg-dir))
+                    ((file-directory-p dir))
+                    ((directory-files dir nil "\\`[^.].+\\.el\\'" t 1)))
+          ;; We won't use `dir', since dir is an absolute path and we
+          ;; don't want `lisp-dir' to depend on the current location of
+          ;; the package installation, ie. to break if moved around the
+          ;; file system or between installations.
+          (throw 'done (setq lisp-dir name)))))
+
     (when lisp-dir
       (push (cons :lisp-dir lisp-dir)
             (package-desc-extras pkg-desc)))