1 ;;; remember-diary --- extracting diary information from buffers
3 ;; Copyright (C) 1999, 2000, 2001, 2004, 2007 Free Software Foundation, Inc.
5 ;; Author: Sacha Chua <sacha@free.net.ph>
6 ;; Created: 24 Mar 2004
7 ;; Keywords: data memory todo pim diary
8 ;; URL: http://gna.org/projects/remember-el/
10 ;; This file is part of GNU Emacs.
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
13 ;; it under the terms of the GNU General Public License as published by
14 ;; the Free Software Foundation; either version 3, or (at your option)
17 ;; GNU Emacs is distributed in the hope that it will be useful,
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 ;; GNU General Public License for more details.
22 ;; You should have received a copy of the GNU General Public License
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
25 ;; Boston, MA 02110-1301, USA.
29 ;; This module recognizes entries of the form
33 ;; and puts them in your ~/.diary (or remember-diary-file) together
34 ;; with an annotation. Planner-style dates (yyyy.mm.dd) are converted
35 ;; to yyyy-mm-dd so that diary can understand them.
39 ;; DIARY: 2003.08.12 Sacha's birthday
43 ;; 2003.08.12 Sacha's birthday [[/home/sacha/notebook/emacs/emacs-wiki/remember-diary.el]]
45 ;; To use, add the following to your .emacs:
47 ;; (require 'remember-diary)
48 ;; ;; This should be before other entries that may return t
49 ;; (add-to-list 'remember-handler-functions 'remember-diary-extract-entries)
56 (defcustom remember-diary-file diary-file
57 "*File for extracted diary entries."
61 (defun remember-diary-convert-entry (entry)
62 "Translate MSG to an entry readable by diary."
64 (when remember-annotation
65 (setq entry
(concat entry
" " remember-annotation
)))
66 (if (string-match "\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)" entry
)
68 (if european-calendar-style
69 (concat (match-string 3 entry
) "/"
70 (match-string 2 entry
) "/"
71 (match-string 1 entry
))
72 (concat (match-string 2 entry
) "/"
73 (match-string 3 entry
) "/"
74 (match-string 1 entry
)))
79 (defun remember-diary-extract-entries ()
80 "Extract diary entries from the region."
82 (goto-char (point-min))
84 (while (re-search-forward "^DIARY:\\s-*\\(.+\\)" nil t
)
85 (add-to-list 'list
(remember-diary-convert-entry (match-string 1))))
87 (make-diary-entry (mapconcat 'identity list
"\n")
88 nil remember-diary-file
))
89 nil
))) ;; Continue processing
91 (provide 'remember-diary
)
93 ;; arch-tag: bda8a3f8-9a9b-46aa-8493-d71d7f1e445d
94 ;;; remember-diary.el ends here