From 00e507fc0eb53fb00f34e55cd89bef4cfffa8663 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Tue, 9 Mar 2010 11:01:20 +0000 Subject: unposted: fix calendar bug updating repeating events allow calendar_edit to take arguments for editor --- ChangeLog | 10 +++++++++- Doc/Zsh/calsys.yo | 7 +++++-- Functions/Calendar/calendar | 4 ++++ Functions/Calendar/calendar_edit | 9 +++++++-- 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8813d32b5..900f84219 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-03-09 Peter Stephenson + + * unposted: Doc/Zsh/calsys.yo, Functions/Calendar/calendar, + Functions/Calendar/calendar_editfiles: Fix bug that + calendar wouldn't update repeating event times for events + that were already in the past; allow calendar_editfiles to + take argument to specify editor. + 2010-03-07 Peter Stephenson * Michael Hwang: 27773: Src/linklist.c: document how linked @@ -12869,5 +12877,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.4925 $ +* $Revision: 1.4926 $ ***************************************************** diff --git a/Doc/Zsh/calsys.yo b/Doc/Zsh/calsys.yo index 94ddd9f75..ea315f5c3 100644 --- a/Doc/Zsh/calsys.yo +++ b/Doc/Zsh/calsys.yo @@ -463,8 +463,11 @@ The second line will not be shown by the tt(calendar) function. ) findex(calendar_edit) item(tt(calendar_edit))( -This calls the user's editor to edit the calendar file. The editor -is given by the variable tt(VISUAL), if set, else the variable tt(EDITOR). +This calls the user's editor to edit the calendar file. If +there are arguments, they are taken as the editor to use (the file name +is appended to the commands); otherwise, the editor is given by the +variable tt(VISUAL), if set, else the variable tt(EDITOR). + If the calendar scheduler was running, then after editing the file tt(calendar -s) is called to update it. diff --git a/Functions/Calendar/calendar b/Functions/Calendar/calendar index b87a14628..baf6b36da 100644 --- a/Functions/Calendar/calendar +++ b/Functions/Calendar/calendar @@ -328,6 +328,10 @@ fi (( tsched = t - mywarntime )) if (( tsched >= start && tsched <= stop)); then $showprog $start $stop "due in ${mywarnstr}: $showline" + elif (( tsched < start )); then + # We haven't actually shown it, but it's in the past, + # so treat it the same. Should probably rename this variable. + (( shown = 1 )) fi fi if [[ -n $sched ]]; then diff --git a/Functions/Calendar/calendar_edit b/Functions/Calendar/calendar_edit index e3ac5c39b..430c3b2e9 100644 --- a/Functions/Calendar/calendar_edit +++ b/Functions/Calendar/calendar_edit @@ -1,9 +1,14 @@ -local editor=${VISUAL:-${EDITOR:-vi}} local line calendar -local -a lockfiles +local -a lockfiles editor integer cal_running +if (( $# )); then + editor=("$@") +else + editor=(${VISUAL:-${EDITOR:-vi}}) +fi + sched | while read line; do [[ $line = *" calendar -s "<->" "<-> ]] && (( cal_running = 1 )) done -- cgit 1.4.1