From 57bf46c73b33e3d5fafe6a757b45e17cef099777 Mon Sep 17 00:00:00 2001 From: James Bunton Date: Mon, 19 Sep 2016 21:56:43 +1000 Subject: [PATCH] auto recentf can use emacs25 inhibit-message --- lisp/my-recentf.el | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/lisp/my-recentf.el b/lisp/my-recentf.el index a96f630..4f8ba5d 100644 --- a/lisp/my-recentf.el +++ b/lisp/my-recentf.el @@ -13,26 +13,20 @@ (defvar my/recentf-list-prev nil) (defun my/recentf-periodic () - (my/with-silence #'recentf-cleanup) - (unless (equal recentf-list my/recentf-list-prev) - (my/with-silence #'recentf-save-list) - (setq my/recentf-list-prev recentf-list))) - -(defun my/with-silence (function) - (advice-add 'message :around #'my/with-silence/advice-message) - (advice-add 'write-region :around #'my/with-silence/advice-write-region) - (unwind-protect - (funcall function) - (advice-remove 'message #'my/with-silence/advice-message) - (advice-remove 'write-region #'my/with-silence/advice-write-region))) - -(defun my/with-silence/advice-message (original-function &rest args) - (ignore original-function) - (apply #'format args)) - -(defun my/with-silence/advice-write-region (original-function &rest args) - (setf (nth 4 args) 'nomsg) - (apply original-function args) - (set-buffer-modified-p nil)) + (when (my/recentf-has-changed) + (my/with-inhibit-message #'recentf-cleanup) + (when (equal recentf-list my/recentf-list-prev) + (my/with-inhibit-message #'recentf-save-list) + (setq my/recentf-list-prev recentf-list)))) + +(defun my/recentf-has-changed () + (not (equal recentf-list my/recentf-list-prev))) + +(defun my/with-inhibit-message (function) + (let ((old-inhibit-message inhibit-message)) + (setq inhibit-message t) + (unwind-protect + (funcall function) + (setq inhibit-message old-inhibit-message)))) (recentf-mode 1) -- 2.39.2