about summary refs log tree commit diff
path: root/Completion/Unix/Command
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2009-04-01 10:57:10 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2009-04-01 10:57:10 +0000
commit1e7c14ee356892a5f3576322b44f2724c9b73f5f (patch)
tree6cfe649cae6065f49bb75ea481c70a5490980889 /Completion/Unix/Command
parent7df454402cbcdb6cccb082c97207eed5e3896583 (diff)
downloadzsh-1e7c14ee356892a5f3576322b44f2724c9b73f5f.tar.gz
zsh-1e7c14ee356892a5f3576322b44f2724c9b73f5f.tar.xz
zsh-1e7c14ee356892a5f3576322b44f2724c9b73f5f.zip
26801: add completion for calendar function
add tracking of precommand modifiers that are in effect
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r--Completion/Unix/Command/_calendar40
1 files changed, 31 insertions, 9 deletions
diff --git a/Completion/Unix/Command/_calendar b/Completion/Unix/Command/_calendar
index 10adfb700..a79fc7298 100644
--- a/Completion/Unix/Command/_calendar
+++ b/Completion/Unix/Command/_calendar
@@ -1,12 +1,34 @@
 #compdef calendar
 
-_arguments \
-  '-a[process files of all users]' \
-  '-A[print today and the following num days]:number of days:' \
-  '-b[enforce special KOI8 date calculation mode]' \
-  '-B[print today and the previous num days]:number of days:' \
-  '-f[use file as the default calendar]:calendar file:_files' \
-  '-l[print today and the following num days]:number of days:' \
-  '-w[print today and the following num days only if today is Friday]:number of days:' \
-  '-t[act as though today is the date specified]:date:'
+if [[ $+functions[calendar] -eq 1 && -z $precommands[(r)command] ]]; then
+  # The shell function is loaded, and we're not instructed to
+  # use an external command, so complete that.
+  _arguments \
+    '-a[show all calendar items]' \
+    '-b[brief, display first line only]' \
+    '-d[move events to done file]' \
+    '-D[never move events to done file]' \
+    '-r[show all remaining items from start or now]' \
+    '-s[use sched to schedule a warning]' \
+    '-v[verbose]' \
+    '-B[select number of lines to display]:lines: ' \
+    '-C[select calendar file]:calendar file:_path_files' \
+    '-n[select max number of events]:max number of events: ' \
+    '-S[select show programme]:show programme:_command_names' \
+    '1:date/time: ' \
+    '(-r)2:end date/time: '
+else
+  # This is only one particular version of calendar.
+  # Some variant of BSD, I think.
 
+  _arguments \
+    '-a[process files of all users]' \
+    '-A[print today and the following num days]:number of days:' \
+    '-b[enforce special KOI8 date calculation mode]' \
+    '-B[print today and the previous num days]:number of days:' \
+    '-f[use file as the default calendar]:calendar file:_files' \
+    '-l[print today and the following num days]:number of days:' \
+    '-w[print today and the following num days only if today is Friday]:number of days:' \
+    '-t[act as though today is the date specified]:date:'
+
+fi