mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-11-25 07:27:57 +00:00
org-footnote: Fix footnote deletion
* lisp/org-footnote.el (org-footnote-delete-definitions): Preserve blank lines after the definition. * testing/lisp/test-org-footnote.el (test-org-footnote/delete): Add test.
This commit is contained in:
parent
9fdc77a3cd
commit
9a8506b7af
@ -712,14 +712,18 @@ Return the number of footnotes removed."
|
||||
(let ((def-re (format "^\\[fn:%s\\]" (regexp-quote label)))
|
||||
(ndef 0))
|
||||
(while (re-search-forward def-re nil t)
|
||||
(let ((full-def (org-footnote-at-definition-p)))
|
||||
(when full-def
|
||||
;; Remove the footnote, and all blank lines before it.
|
||||
(goto-char (nth 1 full-def))
|
||||
(skip-chars-backward " \r\t\n")
|
||||
(unless (bolp) (forward-line))
|
||||
(delete-region (point) (nth 2 full-def))
|
||||
(cl-incf ndef))))
|
||||
(pcase (org-footnote-at-definition-p)
|
||||
(`(,_ ,start ,end ,_)
|
||||
;; Remove the footnote, and all blank lines before it.
|
||||
(delete-region (progn
|
||||
(goto-char start)
|
||||
(skip-chars-backward " \r\t\n")
|
||||
(if (bobp) (point) (line-beginning-position 2)))
|
||||
(progn
|
||||
(goto-char end)
|
||||
(skip-chars-backward " \r\t\n")
|
||||
(if (bobp) (point) (line-beginning-position 2))))
|
||||
(cl-incf ndef))))
|
||||
ndef)))
|
||||
|
||||
(defun org-footnote-delete (&optional label)
|
||||
|
@ -166,7 +166,16 @@
|
||||
(org-test-with-temp-text
|
||||
"Para[fn:1]\n\n[fn:1] para1\n\npara2\n\n\nOutside footnote."
|
||||
(org-footnote-delete "1")
|
||||
(org-trim (buffer-string)))))))
|
||||
(org-trim (buffer-string))))))
|
||||
;; Remove blank lines above the footnote but preserve those after
|
||||
;; it.
|
||||
(should
|
||||
(equal "Text\n\n\nOther text."
|
||||
(let ((org-footnote-section nil))
|
||||
(org-test-with-temp-text
|
||||
"Text[fn:1]\n\n[fn:1] Definition.\n\n\nOther text."
|
||||
(org-footnote-delete "1")
|
||||
(buffer-string))))))
|
||||
|
||||
(ert-deftest test-org-footnote/goto-definition ()
|
||||
"Test `org-footnote-goto-definition' specifications."
|
||||
|
Loading…
Reference in New Issue
Block a user