org-footnote: Fix an infloop
authorNicolas Goaziou <n.goaziou@gmail.com>
Thu, 29 Sep 2011 20:53:45 +0000 (22:53 +0200)
committerNicolas Goaziou <n.goaziou@gmail.com>
Thu, 29 Sep 2011 20:53:45 +0000 (22:53 +0200)
* lisp/org-footnote.el (org-footnote-renumber-fn:N): Fix an infloop
  introduced by commit 1effad02beb79b2fb26506bd4142cb74bbe3a906.

lisp/org-footnote.el

index d54a0f8..64e7cc3 100644 (file)
@@ -891,15 +891,16 @@ If LABEL is non-nil, delete that footnote instead."
     (org-with-wide-buffer
      (goto-char (point-min))
      (while (re-search-forward "\\[fn:\\([0-9]+\\)[]:]" nil t)
-       (goto-char (match-beginning 0))
-       ;; Ensure match is a footnote reference or definition.
-       (when (or (and (bolp) (save-match-data (org-footnote-at-definition-p)))
-                (save-match-data (org-footnote-at-reference-p)))
-        (let ((new-val (or (cdr (assoc (match-string 1) map))
-                           (number-to-string (incf n)))))
-          (unless (assoc (match-string 1) map)
-            (push (cons (match-string 1) new-val) map))
-          (replace-match new-val nil nil nil 1)))))))
+       (save-excursion
+        (goto-char (match-beginning 0))
+        ;; Ensure match is a footnote reference or definition.
+        (when (or (and (bolp) (save-match-data (org-footnote-at-definition-p)))
+                  (save-match-data (org-footnote-at-reference-p)))
+          (let ((new-val (or (cdr (assoc (match-string 1) map))
+                             (number-to-string (incf n)))))
+            (unless (assoc (match-string 1) map)
+              (push (cons (match-string 1) new-val) map))
+            (replace-match new-val nil nil nil 1))))))))
 
 (defun org-footnote-auto-adjust-maybe ()
   "Renumber and/or sort footnotes according to user settings."