emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/denote 7969bb533a 4/8: Revert "Make denote-dired-rename


From: ELPA Syncer
Subject: [elpa] externals/denote 7969bb533a 4/8: Revert "Make denote-dired-rename-marked-files-with-keywords use denote--rename-file-subr"
Date: Sat, 4 Nov 2023 00:57:51 -0400 (EDT)

branch: externals/denote
commit 7969bb533a5bf08896efbf1b0d90524090d092ab
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>

    Revert "Make denote-dired-rename-marked-files-with-keywords use 
denote--rename-file-subr"
    
    This reverts commit 1eeda41cf73511725babd3519335e49ee146352a.
---
 denote.el | 29 ++++++++++++++++++++---------
 1 file changed, 20 insertions(+), 9 deletions(-)

diff --git a/denote.el b/denote.el
index 9c4cffe0a6..f5f710cb6b 100644
--- a/denote.el
+++ b/denote.el
@@ -2571,16 +2571,27 @@ Specifically, do the following:
   (interactive nil dired-mode)
   (if-let ((marks (dired-get-marked-files)))
       (let ((keywords (denote-keywords-prompt "Rename marked files by writing 
these keywords"))
-            (used-ids (when (seq-some
-                             (lambda (m)
-                               (not (denote-retrieve-filename-identifier m 
:no-error)))
-                             marks)
-                        (denote--get-all-used-ids))))
+            (used-ids)) ; We only set it below if necessary (ie if some files 
lack an identifier).
+        (setq used-ids (when (seq-some
+                              (lambda (m) (not 
(denote-retrieve-filename-identifier m :no-error)))
+                              marks)
+                         (denote--get-all-used-ids)))
         (dolist (file marks)
-          (let ((id (or (denote-retrieve-filename-identifier file :no-error)
-                        (denote-create-unique-file-identifier file nil 
used-ids))))
-            (denote--rename-file-subr file nil nil keywords nil nil 
:no-confirm)
-            (when used-ids (puthash id t used-ids))))
+          (let* ((dir (file-name-directory file))
+                 (id (or (denote-retrieve-filename-identifier file :no-error)
+                         (denote-create-unique-file-identifier file nil 
used-ids)))
+                 (signature (denote-retrieve-filename-signature file))
+                 (file-type (denote-filetype-heuristics file))
+                 (title (denote--retrieve-title-or-filename file file-type))
+                 (extension (denote-get-file-extension file))
+                 (new-name (denote-format-file-name dir id keywords 
(denote-sluggify title 'title) extension signature)))
+            (denote-rename-file-and-buffer file new-name)
+            (when (denote-file-is-writable-and-supported-p new-name)
+              (if (denote--edit-front-matter-p new-name file-type)
+                  (denote-rewrite-keywords new-name keywords file-type)
+                (denote--add-front-matter new-name title keywords id 
file-type)))
+            (when used-ids
+              (puthash id t used-ids))))
         (denote-update-dired-buffers))
     (user-error "No marked files; aborting")))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]