From ceecac4c79df85a523a8a6bb3ace78105ff0ffe8 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Thu, 15 Jul 2021 18:03:36 +0200 Subject: [PATCH] Add new user option to abbreviate file names in save-place * lisp/saveplace.el (save-place-abbreviate-file-names): New user option (bug#13286). (save-place-to-alist): Use it. --- etc/NEWS | 3 +++ lisp/saveplace.el | 12 +++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/etc/NEWS b/etc/NEWS index 6e5d358c958..bec7f9fb04c 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2185,6 +2185,9 @@ summaries will include the failing condition. ** Miscellaneous +--- +*** New user option 'save-place-abbreviate-file-names'. + --- *** 'tabulated-list-mode' can now restore original display order. Many commands (like 'C-x C-b') are derived from 'tabulated-list-mode', diff --git a/lisp/saveplace.el b/lisp/saveplace.el index f654702def4..2a95b39da87 100644 --- a/lisp/saveplace.el +++ b/lisp/saveplace.el @@ -87,6 +87,11 @@ this happens automatically before saving `save-place-alist' to `save-place-file'." :type 'boolean) +(defcustom save-place-abbreviate-file-names nil + "If non-nil, abbreviate file names before saving them." + :type 'boolean + :version "28.1") + (defcustom save-place-save-skipped t "If non-nil, remember files matching `save-place-skip-check-regexp'. @@ -177,7 +182,10 @@ file: "Add current buffer filename and position to `save-place-alist'. Put filename and point in a cons box and then cons that onto the front of the `save-place-alist', if `save-place-mode' is non-nil. -Otherwise, just delete that file from the alist." +Otherwise, just delete that file from the alist. + +If `save-place-abbreviate-file-names' is non-nil, abbreviate the +file names." ;; First check to make sure alist has been loaded in from the master ;; file. If not, do so, then feel free to modify the alist. It ;; will be saved again when Emacs is killed. @@ -195,6 +203,8 @@ Otherwise, just delete that file from the alist." (or (not save-place-ignore-files-regexp) (not (string-match save-place-ignore-files-regexp item)))) + (when save-place-abbreviate-file-names + (setq item (abbreviate-file-name item))) (let ((cell (assoc item save-place-alist)) (position (cond ((eq major-mode 'hexl-mode) (with-no-warnings -- 2.39.2