From 4757e63fcd1354c1658579db575f05d37561b095 Mon Sep 17 00:00:00 2001 From: tastytea Date: Sun, 8 Mar 2020 04:12:00 +0100 Subject: [PATCH] Transform register-quicknav--last-register into a function. It accesses the local value of register-quicknav--last-register-v if register-quicknav-buffer-only is t, the global value otherwise. --- register-quicknav.el | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/register-quicknav.el b/register-quicknav.el index a58fdf5..9b3670b 100644 --- a/register-quicknav.el +++ b/register-quicknav.el @@ -87,9 +87,21 @@ :type 'boolean :group 'register-quicknav) -(defvar register-quicknav--last-register nil +(defvar-local register-quicknav--last-register-v nil "The last jumped-to position register.") +(defun register-quicknav--last-register (&optional val) + "Return `register-quicknav--last-register-v' or set it if VAL is non-nil. +Use the local value if `register-quicknav-buffer-only' is set and +the global value otherwise." + (if val + (if register-quicknav-buffer-only + (setq register-quicknav--last-register-v val) + (setq-default register-quicknav--last-register-v val)) + (if register-quicknav-buffer-only + register-quicknav--last-register-v + (default-value 'register-quicknav--last-register-v)))) + (defun register-quicknav--item-file-name (item) "Return file-name of ITEM. Works on markers and file-queries." @@ -137,7 +149,7 @@ Works on markers and file-queries." (defun register-quicknav--jump-to-register (next) "Jump to next position register if NEXT is t, to previous otherwise." (let* ((registers (register-quicknav--registers)) - (index (cl-position register-quicknav--last-register registers)) + (index (cl-position (register-quicknav--last-register) registers)) (stop-searching)) (unless (eq index nil) (if next @@ -170,9 +182,9 @@ Works on markers and file-queries." (setq index (- (length registers) 1)) (cl-decf index))) (register-to-point (car (nth index registers))) - (setq register-quicknav--last-register (nth index registers))) + (register-quicknav--last-register (nth index registers))) (register-to-point (car (car registers))) - (setq register-quicknav--last-register (car registers))))) + (register-quicknav--last-register (car registers))))) ;;;###autoload (defun register-quicknav-next-register () @@ -190,7 +202,8 @@ Works on markers and file-queries." (defun register-quicknav-clear-current-register () "Clear last jumped-to position register from `register-alist'." (interactive) - (setq register-alist (delq register-quicknav--last-register register-alist))) + (setq register-alist + (delq (register-quicknav--last-register) register-alist))) (provide 'register-quicknav) ;;; register-quicknav.el ends here