branch: externals-release/org
commit 13c78a590001d7966a63c2ac35ce803a7a54fc26
Author: Nicolas Goaziou <[email protected]>
Commit: Nicolas Goaziou <[email protected]>
footnote: Allow new footnotes in empty cells
* lisp/org-footnote.el (org-footnote--allow-reference-p): allow
inserting new footnotes in empty cells.
* testing/lisp/test-org-footnote.el (test-org-footnote/new): Add
tests.
Reported-by: Uwe Brauer <[email protected]>
<http://lists.gnu.org/r/emacs-orgmode/2021-05/msg00940.html>
---
lisp/org-footnote.el | 4 ++++
testing/lisp/test-org-footnote.el | 19 +++++++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/lisp/org-footnote.el b/lisp/org-footnote.el
index 6769663..fdf4b3c 100644
--- a/lisp/org-footnote.el
+++ b/lisp/org-footnote.el
@@ -288,6 +288,10 @@ otherwise."
((= (point) (org-element-property :begin context)))
;; Within recursive object too, but not in a link.
((eq type 'link) nil)
+ ((eq type 'table-cell)
+ ;; :contents-begin is not reliable on empty cells, so special
+ ;; case it.
+ (<= (point) (org-element-property :contents-end context)))
((let ((cbeg (org-element-property :contents-begin context))
(cend (org-element-property :contents-end context)))
(and cbeg (>= (point) cbeg) (<= (point) cend))))))))
diff --git a/testing/lisp/test-org-footnote.el
b/testing/lisp/test-org-footnote.el
index 50a4307..5525626 100644
--- a/testing/lisp/test-org-footnote.el
+++ b/testing/lisp/test-org-footnote.el
@@ -90,6 +90,25 @@
(org-test-with-temp-text " *bold*<point>"
(let ((org-footnote-auto-label t)) (org-footnote-new))
(buffer-string))))
+ ;; Arrow new footnotes in empty cells.
+ (should
+ (string-match-p
+ " \\[fn:1\\]"
+ (org-test-with-temp-text "| <point> |"
+ (let ((org-footnote-auto-label t)) (org-footnote-new))
+ (buffer-string))))
+ (should
+ (string-match-p
+ "|\\[fn:1\\]"
+ (org-test-with-temp-text "|<point> |"
+ (let ((org-footnote-auto-label t)) (org-footnote-new))
+ (buffer-string))))
+ (should
+ (string-match-p
+ " \\[fn:1\\]"
+ (org-test-with-temp-text "| <point>|"
+ (let ((org-footnote-auto-label t)) (org-footnote-new))
+ (buffer-string))))
;; When creating a new footnote, move to its definition.
(should
(string=