[O] [PATCH] Fix renumbering for footnotes at BOL.

2011-09-29 Thread Tassilo Horn
Hi all,

org-footnote-renumber-fn:N invalidates footnotes that appear as the
first thing on a line.  Here's a test file including the recipe.

--8---cut here---start-8---
* Bla

  This is a line in which the following footnote that is inserted exactly
  [fn:1] is the first thing in that line.  And now invoke
  org-footnote-renumber-fn:N and see it breaking.

* Footnotes

[fn:1] Test
--8---cut here---end---8---

Note, that in larger org files, it's likely that you don't even notice
that the footnotes break.

Once I added a patch on patchwork that fixed this issue, and that's
shown as accepted.

  http://patchwork.newartisans.com/patch/705/

I think, I've marked it as deferred or so myself because I've thought
the issue was fixed in the meantime, but that doesn't seem to be true.

Here's an updated patch.
---
 lisp/org-footnote.el |   11 ---
 1 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/lisp/org-footnote.el b/lisp/org-footnote.el
index cce0921..931f7dd 100644
--- a/lisp/org-footnote.el
+++ b/lisp/org-footnote.el
@@ -893,16 +893,13 @@ If LABEL is non-nil, delete that footnote instead.
(goto-char (point-min))
(while (re-search-forward \\[fn:\\([0-9]+\\)[]:] nil t)
  (setq i (string-to-number (match-string 1)))
- (when (and (string-match \\S- (buffer-substring
-  (point-at-bol) (match-beginning 0)))
-(not (assq i map)))
+ (when (not (assq i map))
(push (cons i (number-to-string (incf n))) map)))
(goto-char (point-min))
(while (re-search-forward \\(\\[fn:\\)\\([0-9]+\\)\\([]:]\\) nil t)
- (replace-match (concat \\1
-(cdr (assq (string-to-number (match-string 2))
-   map))
-\\3)))
+ (setq i (cdr (assq (string-to-number (match-string 2)) map)))
+ (assert (progn i) t Footnote has no number. Better undo 
renumbering!)
+ (replace-match (concat \\1 i \\3)))
 
 (defun org-footnote-auto-adjust-maybe ()
   Renumber and/or sort footnotes according to user settings.
-- 
1.7.6.1




Re: [O] [PATCH] Fix renumbering for footnotes at BOL.

2011-09-29 Thread Nicolas Goaziou
Hello,

Tassilo Horn tass...@member.fsf.org writes:

 org-footnote-renumber-fn:N invalidates footnotes that appear as the
 first thing on a line.  Here's a test file including the recipe.

 * Bla

   This is a line in which the following footnote that is inserted exactly
   [fn:1] is the first thing in that line.  And now invoke
   org-footnote-renumber-fn:N and see it breaking.

 * Footnotes

 [fn:1] Test

 Note, that in larger org files, it's likely that you don't even notice
 that the footnotes break.

It looks like the original function isn't right in more than one way (it
doesn't even make sure the matched string is really a footnote). But
that's another topic.

About your patch, I have but one question: I don't get a situation in
which the assert would be triggered, may you give me such an example?

Regards,

-- 
Nicolas Goaziou



Re: [O] [PATCH] Fix renumbering for footnotes at BOL.

2011-09-29 Thread Tassilo Horn
Nicolas Goaziou n.goaz...@gmail.com writes:

 It looks like the original function isn't right in more than one way
 (it doesn't even make sure the matched string is really a
 footnote). But that's another topic.

Yes, indeed.

 About your patch, I have but one question: I don't get a situation in
 which the assert would be triggered, may you give me such an example?

I don't either, and that's a good thing.  I added that just as some
extra paranoia so that you get an error if a footnote gets broken.

Bye,
Tassilo



Re: [O] [PATCH] Fix renumbering for footnotes at BOL.

2011-09-29 Thread Nicolas Goaziou
Tassilo Horn tass...@member.fsf.org writes:

 Nicolas Goaziou n.goaz...@gmail.com writes:

 About your patch, I have but one question: I don't get a situation in
 which the assert would be triggered, may you give me such an example?

 I don't either, and that's a good thing.  I added that just as some
 extra paranoia so that you get an error if a footnote gets broken.

Well, provided the first part of the function doesn't modify the buffer,
I still don't see how the assert could fail, even with a broken
footnote. Now, I may also be less paranoid than you are in that case.

Do you still think that assert should be a stayer? If so, I'll apply
your patch.

Regards,

-- 
Nicolas Goaziou



Re: [O] [PATCH] Fix renumbering for footnotes at BOL.

2011-09-29 Thread Tassilo Horn
Nicolas Goaziou n.goaz...@gmail.com writes:

Hi!

 I don't either, and that's a good thing.  I added that just as some
 extra paranoia so that you get an error if a footnote gets broken.

 Well, provided the first part of the function doesn't modify the
 buffer, I still don't see how the assert could fail, even with a
 broken footnote.  Now, I may also be less paranoid than you are in
 that case.

You are right.  And the regex doesn't even match broken footnotes, that
is, footnotes with missing numbers.

 Do you still think that assert should be a stayer?

Nope, feel free to remove that line.

Bye,
Tassilo



Re: [O] [PATCH] Fix renumbering for footnotes at BOL.

2011-09-29 Thread Nicolas Goaziou
Patch applied. Thank you.

Now, onto the other problems in that function...

Regards,

-- 
Nicolas Goaziou