[Remind-Fans] remind+wyrd && in-advance reminders

Gerhard Siegesmund jerri at jerri.de
Wed Jan 17 08:32:01 EST 2007


Hello all

I like this feature and in fact already was looking for this and was
rather disappointed not to find it. It would be a great addition to both
of the tools.

Greeting

> I am using 'in-advance' reminders for birthdays of close friends.
> 
> E.g.:
> [snip]
> REM 07 July +2 MSG Birthday: Anne (%b)
> [snap]
> 
> That's a great feature. However 'wyrd' handles these incompletely
> (IMHO): reminders, that are defined like the above are displayed in
> the right windowpane of 'wyrd', where it displays untimed reminders.
> That's fine, but it only displays the reminder on the day '%b' expands
> to 'today'. The 'in-advance' effect is lost.
> 
> The reason for the problem is, that 'wyrd' parses the output of
> 'remind -s'. I took a look at remind's code, and tried to add the
> possibility to output reminders for the event on the preceding days as
> well (if requested).
> 
> The required changes are rather small, so I'm including them in this
> mail. AFAICT, these changes are keeping the current behaviour fully
> intact.
> 
> This changes the possible call of remind's '-s' which to this:
> 
> [snip]
> -s[a][+][n] Produce `simple calendar' for n (1) months (weeks)
>   if '-s' is directly followed by 'a', remind will output
>   events for 'in-advance' reminders on the days before the actual
>   event.
> [snap]
> 
> So, calling 'remind -sa' in wyrd does the trick.
> 
> I've been discussing this issue with Paul Pelzl and he told me that he
> would include this in wyrd, if remind's output would make it possible.
> 
> I mailed the author of remind about this (and included the patch) a
> month ago, but sadly I did not get any response.
> 
> So, I figured, I should post it here, just in case someone might want
> this functionality as well (and maybe remind's author pays more
> attention to this list, than he does for strangers in his inbox :> ).
> 
> I am using both patches on my laptop system without problems.
> 
> These are the changes for remind:
> [snip]
> diff -ur ../../remind-03.00.24/src/calendar.c ./calendar.c
> --- ../../remind-03.00.24/src/calendar.c  2005-09-30 05:29:32.000000000 +0200
> +++ ./calendar.c  2006-12-16 02:15:59.000000000 +0100
> @@ -648,7 +648,8 @@
>  
>      /* If trigger date == today, add it to the current entry */
>      DBufInit(&obuf);
> -    if (jul == JulianToday) {
> +    if (jul == JulianToday ||
> + (DoSimpleCalDelta && trig.delta != NO_DELTA && jul-trig.delta <= JulianToday)) {
>   NumTriggered++;
>   if (DoSimpleCalendar || tim.ttime != NO_TIME) {
>       if (DBufPuts(&obuf, SimpleTime(tim.ttime)) != OK) {
> diff -ur ../../remind-03.00.24/src/globals.h ./globals.h
> --- ../../remind-03.00.24/src/globals.h 2005-09-30 05:29:32.000000000 +0200
> +++ ./globals.h 2006-12-16 02:09:55.000000000 +0100
> @@ -42,6 +42,7 @@
>  EXTERN  INIT(  int     DebugFlag, 0);
>  EXTERN  INIT(   int  DoCalendar, 0);
>  EXTERN  INIT(   int     DoSimpleCalendar, 0);
> +EXTERN  INIT(   int     DoSimpleCalDelta, 0);
>  EXTERN  INIT(   int     DoPrefixLineNo, 0);
>  EXTERN INIT( int MondayFirst, 0);
>  EXTERN INIT( int Iterations, 1);
> diff -ur ../../remind-03.00.24/src/init.c ./init.c
> --- ../../remind-03.00.24/src/init.c  2005-09-30 05:29:32.000000000 +0200
> +++ ./init.c  2006-12-16 02:09:46.000000000 +0100
> @@ -258,6 +287,10 @@
>       case 's':
>       case 'S':
>     DoSimpleCalendar = 1;
> +   if (*arg == 'a') {
> +     DoSimpleCalDelta = 1;
> +     arg++;
> +   }
>     if (*arg == '+') {                                                                                                                                        
>         arg++;
>         PARSENUM(CalWeeks, arg);
> [snap]
> 
> And these are for wyrd:
> [snip]
> diff -ur wyrd-1.4.1/remind.ml wyrd-1.4.1-new/remind.ml
> --- wyrd-1.4.1/remind.ml  2006-07-17 00:29:41.000000000 +0200
> +++ wyrd-1.4.1-new/remind.ml  2006-12-16 02:22:20.000000000 +0100
> @@ -28,7 +28,7 @@
>  
>  
>  (* A record for an individual timed reminder, as read from
> - * the output of 'remind -s'. *)
> + * the output of 'remind -sa'. *)
>  type timed_rem_t = {
>     tr_start      : float;
>     tr_end        : float;
> @@ -40,7 +40,7 @@
>  
>  
>  (* A record for an individual untimed reminder, as read from
> - * the output of 'remind -s'. *)
> + * the output of 'remind -sa'. *)
>  type untimed_rem_t = {
>     ur_start      : float;
>     ur_msg        : string;
> @@ -188,7 +188,7 @@
>                        (string_of_int tm.Unix.tm_mday) ^ " " ^
>                        (string_of_int (tm.Unix.tm_year + 1900)) in
>     let full_remind_command =
> -      !Rcfile.remind_command ^ " -s -l -g -b2 " ^ 
> +      !Rcfile.remind_command ^ " -sa -l -g -b2 " ^ 
>        !Rcfile.reminders_file ^ " " ^ rem_date_str
>     in
>     let (out_lines, err_lines) = Utility.read_all_shell_command_output full_remind_command in
> @@ -555,9 +555,9 @@
>                         (string_of_int tm2.Unix.tm_mday) ^ " " ^
>                         (string_of_int (tm2.Unix.tm_year + 1900)) in
>     let full_remind_command =
> -      !Rcfile.remind_command ^ " -n -s -b1 " ^ !Rcfile.reminders_file ^ " " ^ 
> +      !Rcfile.remind_command ^ " -n -sa -b1 " ^ !Rcfile.reminders_file ^ " " ^ 
>        rem_date_str1 ^ " > " ^ Rcfile.tmpfile ^ " && " ^ !Rcfile.remind_command ^ 
> -      " -n -s -b1 " ^ !Rcfile.reminders_file ^ " " ^ rem_date_str2 ^ " | cat " ^ 
> +      " -n -sa -b1 " ^ !Rcfile.reminders_file ^ " " ^ rem_date_str2 ^ " | cat " ^ 
>        Rcfile.tmpfile ^ " - | sort"
>     in
>     let (out_lines, err_lines) = 
> [snap]
> 
> Regards, Frank
> 
> -- 
> In protocol design, perfection has been reached not when there is
> nothing left to add, but when there is nothing left to take away.
>                                                   -- RFC 1925
> 
> _______________________________________________
> Remind-fans mailing list
> Remind-fans at lists.whatexit.org
> http://lists.whatexit.org/mailman/listinfo/remind-fans

-- 
cu
  --== Jerri ==--
Homepage: http://www.jerri.de/   ICQ: 54160208
Public PGP Key: http://www.jerri.de/jerris_public_key.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.roaringpenguin.com/pipermail/remind-fans/attachments/20070117/a33fada9/attachment.pgp>


More information about the Remind-fans mailing list