From bd56debc5ef0aac29a8444b42c8fafbf1fdb3bc7 Mon Sep 17 00:00:00 2001 From: 10sr <8.slashes@gmail.com> Date: Fri, 28 Sep 2018 13:41:15 +0900 Subject: [PATCH] Refactor --- emacs.el | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/emacs.el b/emacs.el index 7d3e3b1..f18cf75 100644 --- a/emacs.el +++ b/emacs.el @@ -1814,30 +1814,32 @@ This mode is a simplified version of `adoc-mode'." (file-attributes recently-file)))))) (defun recently-add (path) - "Add file to list." + "Add PATH to list." (cl-assert (string= path (expand-file-name path))) (recently-reload) - (let* ((l recently-list) + (let* ((l (copy-list recently-list)) (l (delete path l)) (l (cl-loop for e in l unless (file-in-directory-p path e) - collect e))) - (setq recently-list - (cons path - l))) - (recently-truncate) - (recently-write)) - -(defun recently-truncate () - "Truncate list." - (when (> (length recently-list) - recently-max) - (setq recently-list - (cl-subseq recently-list + collect e)) + (l (recently-truncate (cons path + l) + recently-max))) + (unless (equal recently-list + l) + (setq recently-list l) + (recently-write)))) + +(defun recently-truncate (list len) + "Truncate LIST to LEN." + (when (> (length list) + len) + (setq list + (cl-subseq list 0 - recently-max)))) + len)))) (defun recently-find-file-hook () "Add current file."