From 4ee34787e688b4145477b55a88be349cb09f2ef4 Mon Sep 17 00:00:00 2001 From: tastytea Date: Mon, 2 Mar 2020 10:13:04 +0100 Subject: [PATCH] Move sort function into a lambda in register-quicknav--registers. --- register-quicknav.el | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/register-quicknav.el b/register-quicknav.el index da53366..b5a9ac3 100644 --- a/register-quicknav.el +++ b/register-quicknav.el @@ -93,27 +93,25 @@ (defvar register-quicknav--current-position-register 0 "An index to the current position register.") -(defun register-quicknav--sort-position-register-elements (a b) - "Return t if the file name is the same and A < B." - (let ((marker-a (cdr a)) - (marker-b (cdr b))) - (and (string= (buffer-file-name (marker-buffer marker-a)) - (buffer-file-name (marker-buffer marker-b))) - (< (marker-position marker-a) - (marker-position marker-b))))) - (defun register-quicknav--registers () "Return all position registers, sorted by file name and position. If `register-quicknav-buffer-only' is t, return only registers in current buffer." - (let (result) + (let ((sort-fn (lambda (a b) + (let ((marker-a (cdr a)) + (marker-b (cdr b))) + (and (string= (buffer-file-name (marker-buffer marker-a)) + (buffer-file-name (marker-buffer marker-b))) + (< (marker-position marker-a) + (marker-position marker-b)))))) + (result)) (dolist (item register-alist) (when (markerp (cdr item)) (if register-quicknav-buffer-only (when (eq (current-buffer) (marker-buffer (cdr item))) (setq result (cons item result))) (setq result (cons item result))))) - (sort result #'register-quicknav--sort-position-register-elements))) + (sort result sort-fn))) ;;;###autoload (defun register-quicknav-next-register ()