emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] [PATCH] Make footnotes work correctly in message-mode (was


From: Carsten Dominik
Subject: Re: [Orgmode] [PATCH] Make footnotes work correctly in message-mode (was: Difference between org-footnote.el and footnote.el)
Date: Sun, 24 Oct 2010 18:20:29 +0200

Applied, thanks - bplease confirm that I did get the right patch.

Thanks.

- Carsten

On Oct 22, 2010, at 11:53 AM, Tassilo Horn wrote:

* repos/el/org-mode/lisp/org-footnote.el
(org-footnote-create-definition)
(org-footnote-goto-local-insertion-point): Add footnotes before
signature when in message-mode.
---
lisp/org-footnote.el |   25 +++++++++++++++----------
1 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/lisp/org-footnote.el b/lisp/org-footnote.el
index 36fcfb2..ac1305f 100644
--- a/lisp/org-footnote.el
+++ b/lisp/org-footnote.el
@@ -302,15 +302,19 @@ or new, let the user edit the definition of the footnote."
     (t
(setq re (concat "^" org-footnote-tag-for-non-org-mode-files "[ \t]*$"))
      (unless (re-search-forward re nil t)
-       (goto-char (point-max))
-       (skip-chars-backward " \t\r\n")
-       (insert "\n\n")
-       (delete-region (point) (point-max))
-       (insert org-footnote-tag-for-non-org-mode-files "\n"))
-      (goto-char (point-max))
-      (skip-chars-backward " \t\r\n")))
-    (insert "\n\n")
-    (insert "[" label "] ")
+       (let ((max (if (and (eq major-mode 'message-mode)
+                           (re-search-forward message-signature-separator nil 
t))
+                      (progn (beginning-of-line) (point))
+                    (goto-char (point-max)))))
+         (skip-chars-backward " \t\r\n")
+         (delete-region (point) max)
+         (insert "\n\n")
+         (insert org-footnote-tag-for-non-org-mode-files "\n")))))
+    ;; Skip existing footnotes
+    (while (re-search-forward "^[[:space:]]*\\[[^]]+\\] " nil t)
+      (forward-line))
+    (insert "[" label "] \n")
+    (goto-char (1- (point)))
(message "Edit definition and go back with `C-c &' or, if unique, with `C-c C-c'.")))

;;;###autoload
@@ -506,7 +510,8 @@ 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 "))
+  (skip-chars-backward "\n\r\t ")
+  (forward-line))

(defun org-footnote-delete (&optional label)
  "Delete the footnote at point.
--
1.7.3.1

Ups, my previous patch (as reply to Seb) had a bug, so here's a new one.

Bye,
Tassilo


_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode




reply via email to

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