emacs-orgmode
[Top][All Lists]
Advanced

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

[O] Footnote sorting bug


From: Matt Lundin
Subject: [O] Footnote sorting bug
Date: Mon, 07 Mar 2011 14:06:40 -0500
User-agent: Gnus/5.110014 (No Gnus v0.14) Emacs/24.0.50 (gnu/linux)

Sorting footnotes when org-footnote-section is nil can have very
destructive consequences. For instance, the following file...

--8<---------------cut here---------------start------------->8---
* Heading one

A footnote.[fn:one]

[fn:one] A footnote

Another footnote.[fn:two]

[fn:two] Another footnote

A third footnote.[fn:three]

[fn:three] A third

* Heading two

Some text
--8<---------------cut here---------------end--------------->8---

...loses the second heading when sorted....


--8<---------------cut here---------------start------------->8---
* Heading one

A footnote.[fn:one]

Another footnote.[fn:two]

A third footnote.[fn:three]


[fn:one] A footnote


[fn:two] Another footnote* Heading two

Some text


[fn:three] A third
--8<---------------cut here---------------end--------------->8---

I traced the problem to an extra forward-line added to
org-footnote-goto-local-insertion-point with commit
145109dc4a6f161e4ad826bea9cc970363649280, but seems to have had some
unintended consequences for org buffers.

The following patch fixes the sorting problem in org buffers. AFAICT, it
has no effect on footnote insertion in message mode buffers with
signatures. (Unfortunately, footnote sorting in message buffers with
signatures is broken both before and after this patch.)

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/org-footnote.el b/lisp/org-footnote.el
index b6a9bca..d28161e 100644
--- a/lisp/org-footnote.el
+++ b/lisp/org-footnote.el
@@ -511,8 +511,7 @@ ENTRY is (fn-label num-mark definition)."
     (beginning-of-line 0))
   (if (looking-at "[ \t]*#\\+TBLFM:") (beginning-of-line 2))
   (end-of-line 1)
-  (skip-chars-backward "\n\r\t ")
-  (forward-line))
+  (skip-chars-backward "\n\r\t "))
 
 (defun org-footnote-delete (&optional label)
   "Delete the footnote at point.
--8<---------------cut here---------------end--------------->8---

Best,
Matt



reply via email to

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