From 9afcf2bd39ceb2988ed516efa0a474137fb30f74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simen=20Heggest=C3=B8yl?= Date: Tue, 2 Jun 2020 19:20:14 +0200 Subject: Write project list to file only when changed * lisp/progmodes/project.el (project--add-to-project-list-front): Write the project list to file only when it has changed. --- lisp/progmodes/project.el | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 314918901ea..0051a84ff84 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -771,14 +771,15 @@ Arguments the same as in `compile'." (write-region nil nil filename nil 'silent)))) (defun project--add-to-project-list-front (pr) - "Add project PR to the front of the project list and save it. -Return PR." + "Add project PR to the front of the project list. +Save the result to disk if the project list was changed." (project--ensure-read-project-list) - (let ((dir (project-root pr))) + (let* ((dir (project-root pr)) + (do-write (not (equal (car project--list) dir)))) (setq project--list (delete dir project--list)) - (push dir project--list)) - (project--write-project-list) - pr) + (push dir project--list) + (when do-write + (project--write-project-list)))) (defun project--remove-from-project-list (pr-dir) "Remove directory PR-DIR from the project list. -- cgit v1.2.1