]> git.eshelyaron.com Git - emacs.git/commitdiff
Unbreak project-find-file's future history when cpd is not root
authorDmitry Gutov <dmitry@gutov.dev>
Sat, 12 Aug 2023 00:58:53 +0000 (03:58 +0300)
committerDmitry Gutov <dmitry@gutov.dev>
Sat, 12 Aug 2023 00:58:53 +0000 (03:58 +0300)
* lisp/progmodes/project.el (project-find-file): Pass in
buffer-file-name as absolute name (bug#63829).
(project--read-file-cpd-relative): Make it relative to the
appropriate common parent dir.

lisp/progmodes/project.el

index 24531d9d02eecfcac371b650abf2c2a5620c3a2f..fe13f4ab1146a564323dca1f90195802bcd45fc6 100644 (file)
@@ -1005,7 +1005,7 @@ for VCS directories listed in `vc-directory-exclusion-list'."
          (dirs (list root)))
     (project-find-file-in
      (or (thing-at-point 'filename)
-         (and buffer-file-name (file-relative-name buffer-file-name root)))
+         buffer-file-name)
      dirs pr include-all)))
 
 ;;;###autoload
@@ -1058,6 +1058,11 @@ by the user at will."
                          (setq all-files
                                (delete common-parent-directory all-files))
                          t))
+         (mb-default (if (and common-parent-directory
+                              mb-default
+                              (file-name-absolute-p mb-default))
+                         (file-relative-name mb-default common-parent-directory)
+                       mb-default))
          (substrings (mapcar (lambda (s) (substring s cpd-length)) all-files))
          (_ (when included-cpd
               (setq substrings (cons "./" substrings))))