emacs-orgmode
[Top][All Lists]
Advanced

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

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


From: Sébastien Vauban
Subject: [Orgmode] Re: [PATCH] Make footnotes work correctly in message-mode
Date: Fri, 22 Oct 2010 17:43:50 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (windows-nt)

Hi Tassilo,

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.

Tested. Works perfectly for me. Fan-tas-tic!

Best regards,
  Seb

-- 
Sébastien Vauban




reply via email to

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