]> git.eshelyaron.com Git - emacs.git/commitdiff
Track 'default-directory' while updating source packages
authorPhilip Kaludercic <philipk@posteo.net>
Wed, 9 Nov 2022 08:35:11 +0000 (09:35 +0100)
committerPhilip Kaludercic <philipk@posteo.net>
Thu, 17 Nov 2022 19:37:28 +0000 (20:37 +0100)
* lisp/emacs-lisp/package-vc.el (package-vc-update): Add the source
directory to the identifier list, in case the remaining
'vc-do-command' arguments are all read-time constants.

lisp/emacs-lisp/package-vc.el

index 548e78801104ad8c4960a261b53d0028e4131db9..8031bea490f533a1276e7043a2bdf640c7bcea10 100644 (file)
@@ -564,19 +564,22 @@ installed package."
   ;;
   ;; If there is a better way to do this, it should be done.
   (letrec ((pkg-dir (package-desc-dir pkg-desc))
-           (empty (make-symbol empty))
-           (args (list empty empty empty))
+           (empty (make-symbol "empty"))
+           (args (list empty empty empty empty))
            (vc-filter-command-function
             (lambda (command file-or-list flags)
               (setf (nth 0 args) command
                     (nth 1 args) file-or-list
-                    (nth 2 args) flags)
+                    (nth 2 args) flags
+                    (nth 3 args) default-directory)
               (list command file-or-list flags)))
            (post-upgrade
             (lambda (command file-or-list flags)
               (when (and (memq (nth 0 args) (list command empty))
                          (memq (nth 1 args) (list file-or-list empty))
-                         (memq (nth 2 args) (list flags empty)))
+                         (memq (nth 2 args) (list flags empty))
+                         (or (eq (nth 3 args) empty)
+                             (file-equal-p (nth 3 args) default-directory)))
                 (with-demoted-errors "Failed to activate: %S"
                   (package-vc--unpack-1 pkg-desc pkg-dir))
                 (remove-hook 'vc-post-command-functions post-upgrade)))))