branch: externals/org
commit 6954fe93edf41d0df4ed9188332f21106b35a48d
Author: Ihor Radchenko <yanta...@posteo.net>
Commit: Ihor Radchenko <yanta...@posteo.net>

    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 1dc0a4519c..6169dacf99 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 3a8ca5f390..20aab6bb8a 100644
--- a/lisp/ol.el
+++ b/lisp/ol.el
@@ -509,20 +509,6 @@ links more efficient."
   :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 @@ non-nil."
       (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

Reply via email to