emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Document backward-incompatible change in ORG-NEWS? (was: [BUG] Recently


From: Bastien
Subject: Document backward-incompatible change in ORG-NEWS? (was: [BUG] Recently master branch commit breaks open file: link)
Date: Mon, 24 Feb 2020 21:35:14 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Hi Nicolas,

it seems that org-store-link stored links to headlines as

[[*TODO headline][headline]]

keeping the TODO keyword, if any.

This is fixed in master but I won't if we should document this bug
fix in ORG-NEWS (or if org-store-link was just momentarily broken.)

If org-store-link was storing the todo keyword, perhaps we can add
a command similar to this one to help users fix broken links:

(defun org-fix-links ()
  "Fix ill-formatted internal links.
E.g. replace [[*TODO Headline][headline]] by [[*Headline][headline]].
Go through the buffer and ask for the replacement."
  (interactive)
  (visible-mode 1)
  (save-excursion
    (goto-char (point-min))
    (while (re-search-forward org-link-any-re nil t)
      (let* ((raw (match-string 2))
             (desc (match-string 3))
             fix new)
        (when (and raw desc
                   (string-match-p
                    (concat "^\*" (regexp-opt org-todo-keywords-1)
                            "\\s-+\\(.+\\)$")
                    raw))
          (setq new (replace-regexp-in-string
                     (concat (regexp-opt org-todo-keywords-1) "\\s-+")
                     "" raw))
          (set-text-properties 0 (length new) nil new)
          (setq fix (completing-read "Replace link at point by: "
                                     nil nil nil new))
          (replace-match (format "[[%s][%s]]" fix desc))))))
  (visible-mode -1))

WDYT?

-- 
 Bastien



reply via email to

[Prev in Thread] Current Thread [Next in Thread]