Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: calendar -b



Minor tweak to "calendar" to add an option for brief output.

Index: Doc/Zsh/calsys.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/calsys.yo,v
retrieving revision 1.8
diff -u -r1.8 calsys.yo
--- Doc/Zsh/calsys.yo	26 Mar 2007 14:33:33 -0000	1.8
+++ Doc/Zsh/calsys.yo	16 Aug 2007 09:23:06 -0000
@@ -309,8 +309,8 @@
 
 startitem()
 findex(calendar)
-xitem(tt(calendar) [ tt(-adDsv) ] [ tt(-C) var(calfile) ] [ -n var(num) ] [ tt(-S) var(showprog) ] [ [ var(start) ] var(end) ])(
-item(tt(calendar -r) [ tt(-adDrsv) ] [ tt(-C) var(calfile) ] [ -n var(num) ] [ tt(-S) var(showprog) ] [ var(start) ])(
+xitem(tt(calendar) [ tt(-abdDsv) ] [ tt(-C) var(calfile) ] [ -n var(num) ] [ tt(-S) var(showprog) ] [ [ var(start) ] var(end) ])(
+item(tt(calendar -r) [ tt(-abdDrsv) ] [ tt(-C) var(calfile) ] [ -n var(num) ] [ tt(-S) var(showprog) ] [ var(start) ])(
 Show events in the calendar.
 
 With no arguments, show events from the start of today until the end of
@@ -342,6 +342,10 @@
 Show all items in the calendar, regardless of the tt(start) and
 tt(end).
 )
+item(tt(-b))(
+Brief:  don't display continuation lines (i.e. indented lines following
+the line with the date/time), just the first line.
+)
 item(tt(-C) var(calfile))(
 Explicitly specify a calendar file instead of the value of
 the tt(calendar-file) style or the the default tt(~/calendar).
Index: Functions/Calendar/calendar
===================================================================
RCS file: /cvsroot/zsh/zsh/Functions/Calendar/calendar,v
retrieving revision 1.4
diff -u -r1.4 calendar
--- Functions/Calendar/calendar	14 Jun 2007 13:25:58 -0000	1.4
+++ Functions/Calendar/calendar	16 Aug 2007 09:23:06 -0000
@@ -1,11 +1,11 @@
 emulate -L zsh
 setopt extendedglob
 
-local line restline REPLY REPLY2 userange pruned nobackup datefmt
+local line showline restline REPLY REPLY2 userange pruned nobackup datefmt
 local calendar donefile sched newfile warnstr mywarnstr newdate
 integer time start stop today ndays y m d next=-1 shown done nodone
 integer verbose warntime mywarntime t tcalc tsched i rstat remaining
-integer showcount icount repeating repeattime resched showall
+integer showcount icount repeating repeattime resched showall brief
 local -a calendar_entries calendar_addlines
 local -a times calopts showprog lockfiles match mbegin mend
 
@@ -101,6 +101,11 @@
       (( showall = 1 ))
       ;;
 
+      (b)
+      # Brief: don't show continuation lines
+      (( brief = 1 ))
+      ;;
+
       (d)
       # Move out of date items to the done file.
       (( done = 1 ))
@@ -284,16 +289,21 @@
       fi
     fi
     (( shown = 0 ))
+    if (( brief )); then
+      showline=${line%%$'\n'*}
+    else
+      showline=$line
+    fi
     if (( showall || (t >= start && (remaining || t <= stop || icount < showcount)) ))
     then
-      $showprog $start $stop "$line"
+      $showprog $start $stop "$showline"
       (( icount++ ))
       # Doesn't count as "shown" unless the event has now passed.
       (( t <= EPOCHSECONDS )) && (( shown = 1 ))
     elif [[ -n $sched ]]; then
       (( tsched = t - mywarntime ))
       if (( tsched >= start && tsched <= stop)); then
-	$showprog $start $stop "due in ${mywarnstr}: $line"
+	$showprog $start $stop "due in ${mywarnstr}: $showline"
       fi
     fi
     if [[ -n $sched ]]; then

-- 
Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


.



Messages sorted by: Reverse Date, Date, Thread, Author