mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2025-01-05 11:45:52 +00:00
org-footnote: Fix f8c4102cc6
* lisp/org-footnote.el (org-footnote-new): Fix
f8c4102cc6
.
* testing/lisp/test-org-footnote.el (test-org-footnote/new): Add test.
This commit is contained in:
parent
8500501984
commit
65ded0c7ed
@ -552,13 +552,19 @@ or new, let the user edit the definition of the footnote."
|
||||
(org-footnote-auto-adjust-maybe))
|
||||
(t
|
||||
(insert "[" label "]")
|
||||
(org-footnote-create-definition label)
|
||||
(org-footnote-auto-adjust-maybe)
|
||||
(if (ignore-errors (org-footnote-goto-definition label))
|
||||
(forward-char)
|
||||
;; Definition was created outside current scope: edit it
|
||||
;; remotely.
|
||||
(org-edit-footnote-reference))))))
|
||||
(let ((p (org-footnote-create-definition label)))
|
||||
;; `org-footnote-goto-definition' needs to be called
|
||||
;; after `org-footnote-auto-adjust-maybe'. Otherwise
|
||||
;; both label and location of the definition are lost.
|
||||
;; On the contrary, it needs to be called before
|
||||
;; `org-edit-footnote-reference' so that the remote
|
||||
;; editing buffer can display the correct label.
|
||||
(if (ignore-errors (org-footnote-goto-definition label p))
|
||||
(org-footnote-auto-adjust-maybe)
|
||||
;; Definition was created outside current scope: edit
|
||||
;; it remotely.
|
||||
(org-footnote-auto-adjust-maybe)
|
||||
(org-edit-footnote-reference)))))))
|
||||
|
||||
(defvar org-blank-before-new-entry) ; Silence byte-compiler.
|
||||
(defun org-footnote-create-definition (label)
|
||||
|
@ -98,7 +98,30 @@
|
||||
" \\*bold\\*\\[fn:1\\]"
|
||||
(org-test-with-temp-text " *bold*<point>"
|
||||
(let ((org-footnote-auto-label t)) (org-footnote-new))
|
||||
(buffer-string)))))
|
||||
(buffer-string))))
|
||||
;; When creating a new footnote, move to its definition.
|
||||
(should
|
||||
(string=
|
||||
"[fn:1] "
|
||||
(org-test-with-temp-text "Text<point>"
|
||||
(let ((org-footnote-auto-label t)
|
||||
(org-footnote-auto-adjust nil))
|
||||
(org-footnote-new))
|
||||
(buffer-substring-no-properties (line-beginning-position) (point)))))
|
||||
;; Re-order and re-label footnotes properly when
|
||||
;; `org-footnote-auto-adjust' is non-nil.
|
||||
(should
|
||||
(string=
|
||||
"[fn:1] 1\n\n[fn:2] \n\n[fn:3] 2\n"
|
||||
(org-test-with-temp-text
|
||||
"Text[fn:1]Text<point>Text[fn:2]\n\n[fn:1] 1\n\n[fn:2] 2"
|
||||
(let ((org-footnote-auto-label t)
|
||||
(org-footnote-auto-adjust t)
|
||||
(org-footnote-section nil))
|
||||
(org-footnote-new))
|
||||
(buffer-substring-no-properties
|
||||
(line-beginning-position -1)
|
||||
(line-beginning-position 4))))))
|
||||
|
||||
(ert-deftest test-org-footnote/delete ()
|
||||
"Test `org-footnote-delete' specifications."
|
||||
|
Loading…
Reference in New Issue
Block a user