emacs-orgmode
[Top][All Lists]
Advanced

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

[Orgmode] Re: org-mode and remind integration


From: Olaf Dietsche
Subject: [Orgmode] Re: org-mode and remind integration
Date: Fri, 09 Jan 2009 15:39:29 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)

"Daniel Martins" <address@hidden> writes:

> Yes, I am.
[...]
> I am sending the last version of org2rem which integrates timed reminds from
> DEADLINE: and SCHEDULE: lines
[...]
>
> 2009/1/9 Carsten Dominik <address@hidden>
>
>> Is any action happening on this?  Is someone trying to fix org2rem?
>> - Carsten

I have no idea of remind.

This is an untested patch, but you get the idea. Avoid global
variables, if you can. If you use global variables, you have
prerequisites and side effects, which complicate following the
code. This is not lisp specific.

Regards, Olaf

--- org2rem.el.orig     2009-01-09 12:47:39.000000000 +0100
+++ org2rem.el  2009-01-09 15:28:55.000000000 +0100
@@ -34,9 +34,6 @@
 (eval-when-compile
   (require 'cl))
 
-(defvar org2rem-scheduled-reminders nil)
-(defvar org2rem-deadline-reminders nil)
-(defvar pure-time nil)
 (defvar org2rem-scheduled-remind-file 
   "~/.reminders.org.scheduled")
 (defvar org2rem-deadline-remind-file 
@@ -45,6 +42,7 @@
 (defun org2rem-list-reminders (regexp)
   "Make a list of appointments. 
 REGEXP is either SCHEDULED: or DEADLINE:."
+  (let (reminders)
   (save-excursion
     (goto-char (point-min))
     (while (re-search-forward 
@@ -66,17 +64,17 @@
 
          (if (string-match "[0-9]+:[0-9]+"  task) 
              (save-excursion         
-              (setq pure-time
+                 (let ((pure-time
                     (replace-regexp-in-string 
 ;;                   "[^0-9]*\\([0-9]+:[0-9]+\\).*" "\\1" 
                      ".*\\([0-9][0-9]:[0-9][0-9]\\).*" "\\1" 
 ;;                   ".*\\(\D\D:\D\D\\)+.*" "\\1" 
                      task)
-                    ) 
+                        ))
 
               (setq rem-time
                     (concat  rem-time " AT " pure-time " ")
-                    )
+                         ))
               )
            )         
 
@@ -95,9 +93,9 @@
 
          (setq rem-task (concat "REM" rem-time "MSG "  task "%")
                )
-         (if (equal regexp org-scheduled-string)
-             (push rem-task org2rem-scheduled-reminders)
-           (push rem-task org2rem-deadline-reminders)))))))
+           (push rem-task reminders)))))
+    reminders))
+
 
 (defun org2rem-write-file (file reminders)
   "Write reminders list to files."
@@ -114,15 +112,13 @@
 Store scheduled appointments in `org2rem-scheduled-remind-file'
 and `org2rem-deadline-remind-file'."
   (interactive)
-  (setq org2rem-scheduled-reminders nil)
-  (setq org2rem-deadline-reminders nil)
+  (let ((org2rem-scheduled-reminders (org2rem-list-reminders 
org-scheduled-string))
+       (org2rem-deadline-reminders (org2rem-list-reminders 
org-deadline-string)))
   (save-window-excursion
-    (org2rem-list-reminders org-scheduled-string)
-    (org2rem-list-reminders org-deadline-string)
-    (org2rem-write-file "~/.reminders.org.scheduled" 
+      (org2rem-write-file org2rem-scheduled-remind-file 
                        org2rem-scheduled-reminders)
-    (org2rem-write-file "~/.reminders.org.deadline"
-                       org2rem-deadline-reminders)))
+      (org2rem-write-file org2rem-deadline-remind-file
+                         org2rem-deadline-reminders))))
 
 
 

reply via email to

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