From 7d8ed8f767c632bbb94f236fd08ee31e0d573e39 Mon Sep 17 00:00:00 2001 Message-ID: <7d8ed8f767c632bbb94f236fd08ee31e0d573e39.1692010108.git.yantar92@posteo.net> From: Ihor Radchenko Date: Mon, 14 Aug 2023 13:39:47 +0300 Subject: [PATCH] org-store-link: Never allow link duplicates in `org-stored-links' * lisp/ol.el (org-link-store-existing): Remove the previously added custom option. (org-store-link): Do not use `org-link-store-existing' removing all the code branches for values other than 'move-to-front. * etc/ORG-NEWS (~org-store-link~ now moves an already stored link to front of the ~org-stored-links~): Remove reference to the removed custom option. Link: https://orgmode.org/list/87leeffd1z.fsf@localhost --- etc/ORG-NEWS | 6 ------ lisp/ol.el | 37 +++++++++++-------------------------- 2 files changed, 11 insertions(+), 32 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 1dc0a4519..6169dacf9 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -31,12 +31,6 @@ Now, ~org-store-link~ moves the stored link to front of the list of stored links. This way, the link will show up first in the completion and when inserting all the stored links with ~org-insert-all-links~. -The new behavior is controlled by new customization ~org-link-store-existing~. - -Users can set ~org-link-store-existing~ to nil to revert previous -defaults. The value of =store-duplicate= will force duplicate links -in ~org-stored-links~. The default value is =move-to-front=. - *** Major changes and additions to Org API **** New term: "syntax node" diff --git a/lisp/ol.el b/lisp/ol.el index 3a8ca5f39..20aab6bb8 100644 --- a/lisp/ol.el +++ b/lisp/ol.el @@ -509,20 +509,6 @@ (defcustom org-link-keep-stored-after-insertion nil :type 'boolean :safe #'booleanp) -(defcustom org-link-store-existing 'move-to-front - "Variable controlling how to deal with already stored links. -When nil, ignore store request for an already stored link. -When symbol `move-to-front', move the stored link to the front of -`org-stored-links'. -When symbol `store-duplicate', add a duplicate in front." - :group 'org-link-store - :type '(choice - (const :tag "Do no store duplicate" nil) - (const :tag "Move stored duplicate to front" move-to-front) - (const :tag "Store duplicate" store-duplicate)) - :safe #'symbolp - :package-version '(Org . "9.7")) - ;;; Public variables (defconst org-target-regexp (let ((border "[^<>\n\r \t]")) @@ -1764,18 +1750,17 @@ (defun org-store-link (arg &optional interactive?) (if (not (and interactive? link)) (or agenda-link (and link (org-link-make-string link desc))) (dotimes (_ (if custom-id 2 1)) ; Store 2 links when CUSTOM-ID is non-nil. - (pcase org-link-store-existing - ((or `store-duplicate - (guard (not (member (list link desc) org-stored-links)))) - (push (list link desc) org-stored-links) - (message "Stored: %s" (or desc link))) - ((or`nil (guard (equal (list link desc) (car org-stored-links)))) - (message "This link has already been stored")) - (`move-to-front - (setq org-stored-links - (delete (list link desc) org-stored-links)) - (push (list link desc) org-stored-links) - (message "Link moved to front: %s" (or desc link)))) + (cond + ((not (member (list link desc) org-stored-links)) + (push (list link desc) org-stored-links) + (message "Stored: %s" (or desc link))) + ((equal (list link desc) (car org-stored-links)) + (message "This link has already been stored")) + (t + (setq org-stored-links + (delete (list link desc) org-stored-links)) + (push (list link desc) org-stored-links) + (message "Link moved to front: %s" (or desc link)))) (when custom-id (setq link (concat "file:" (abbreviate-file-name -- 2.41.0