mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-06-10 18:58:03 +02:00
51473: Update cal/ncal completion
- Support util-linux and bsdmainutils cal on Linux - Support each BSD's implementations
This commit is contained in:
parent
bb36b80178
commit
d76004588b
2 changed files with 119 additions and 13 deletions
|
@ -1,5 +1,8 @@
|
||||||
2023-02-24 Oliver Kiddle <opk@zsh.org>
|
2023-02-24 Oliver Kiddle <opk@zsh.org>
|
||||||
|
|
||||||
|
* Shohei YOSHIDA: 51473: Completion/Unix/Command/_cal:
|
||||||
|
Update cal/ncal completion
|
||||||
|
|
||||||
* Sebastian Stark: 51470 (tweaked, c.f. 51476):
|
* Sebastian Stark: 51470 (tweaked, c.f. 51476):
|
||||||
Completion/Zsh/Command/_cd: Separate cdpath elements in
|
Completion/Zsh/Command/_cd: Separate cdpath elements in
|
||||||
path-directories completion
|
path-directories completion
|
||||||
|
|
|
@ -1,28 +1,131 @@
|
||||||
#compdef cal ncal
|
#compdef cal ncal
|
||||||
|
|
||||||
local args
|
local -a args
|
||||||
|
args=()
|
||||||
|
|
||||||
case $service in
|
case $service in
|
||||||
cal)
|
cal)
|
||||||
args=(
|
# check util-linux's cal or bsdmainutils's cal
|
||||||
'-3[three in a row]'
|
if $service --version 1>/dev/null 2>/dev/null ; then
|
||||||
'-m[Monday as first day of the week]'
|
args+=(
|
||||||
)
|
'(-1 --one)'{-1,--one}'[show only a single month]'
|
||||||
|
'(-3 --three)'{-3,--three}'[show three months spanning the date]'
|
||||||
|
'(-n --months)'{-n,--months=}"[show num months starting with date's month]:month"
|
||||||
|
'(-S --span)'{-S,--span}'[span the date when displaying multiple month]'
|
||||||
|
'(-s --sunday)'{-s,--sunday}'[Sunday as first day of week]'
|
||||||
|
'(-m --monday)'{-m,--monday}'[Monday as first day of week]'
|
||||||
|
'(-j --julian)'{-j,--julian}'[use day-of-year for all calendars]'
|
||||||
|
'--reform=[Gregorian reform date]:val:(1752 gregorian iso julian)'
|
||||||
|
'--iso[alias for --reform=iso]'
|
||||||
|
'(-y --year)'{-y,--year}'[show the whole year]'
|
||||||
|
'(-Y --twelve)'{-Y,--twelve}'[show the next twelve months]'
|
||||||
|
'(-w --week)'{-w,--week=-}'[show US or ISO-8601 week numbers]::num'
|
||||||
|
'(-v --vertical)'{-v,--vertical}'[show day vertically instead of line]'
|
||||||
|
'(-c --columns)'{-c,--columns=}'[amount of columns to use]:width'
|
||||||
|
'--color=-[colorize messages]:when:(auto always never)'
|
||||||
|
'(- *)'{-h,--help}'[display help]'
|
||||||
|
'(- *)'{-V,--version}'[display version]'
|
||||||
|
)
|
||||||
|
else
|
||||||
|
case $OSTYPE in
|
||||||
|
(linux*|openbsd*|freebsd*|netbsd*|darwin*|dragonfly*)
|
||||||
|
args+=(
|
||||||
|
'-j[display Julian days]'
|
||||||
|
)
|
||||||
|
;|
|
||||||
|
(linux*|freebsd*|netbsd*|darwin*|dragonfly*)
|
||||||
|
args+=(
|
||||||
|
'-3[display the previous, current and next month surrounding today]'
|
||||||
|
'-A[months to add after]:months'
|
||||||
|
'-B[months to add before]:months'
|
||||||
|
)
|
||||||
|
;|
|
||||||
|
(freebsd*|netbsd*|darwin*|dragonfly*)
|
||||||
|
args+=(
|
||||||
|
'-h[turns off highlighting of today]'
|
||||||
|
)
|
||||||
|
;|
|
||||||
|
(netbsd*|openbsd*)
|
||||||
|
args+=(
|
||||||
|
'-y[display a calendar for the current year]'
|
||||||
|
)
|
||||||
|
;|
|
||||||
|
(linux*|freebsd*|darwin*|dragonfly*)
|
||||||
|
args+=(
|
||||||
|
'-m[display the specified month]:month'
|
||||||
|
'-y[display a calendar for the specified year]:year'
|
||||||
|
'-C[switch to cal mode]'
|
||||||
|
'-d[use yyyy-mm as the current date]:yyyy-mm'
|
||||||
|
)
|
||||||
|
;|
|
||||||
|
(freebsd*|darwin*|dragonfly*)
|
||||||
|
args+=(
|
||||||
|
'-N[switch to ncal mode]'
|
||||||
|
)
|
||||||
|
;|
|
||||||
|
(linux*)
|
||||||
|
args+=(
|
||||||
|
'-1[display only the current month]'
|
||||||
|
)
|
||||||
|
;|
|
||||||
|
(openbsd*)
|
||||||
|
args+=(
|
||||||
|
'-m[display weeks starting on Monday instead of Sunday]'
|
||||||
|
'-w[display week numbers in the month display]'
|
||||||
|
)
|
||||||
|
;|
|
||||||
|
(netbsd*)
|
||||||
|
args+=(
|
||||||
|
'-C[display context months before and after the specified month]:months'
|
||||||
|
'-d[specifies the day of the week on which the calendar should start]:day_of_week'
|
||||||
|
'-h[highlight the current day]'
|
||||||
|
'-R[selects an alternate Gregorian reform point from the default of September 3rd, 1752]:reform-sp'
|
||||||
|
'-r[display the month in which the Gregorian Reform adjustment was applied]'
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
ncal)
|
ncal)
|
||||||
args=(
|
args=(
|
||||||
'-J[display Julian calendar]'
|
'-h[turns off highlighting of today]'
|
||||||
'-e[display date of western Easter]'
|
'-J[display Julian Calendar]'
|
||||||
'-o[display date of orthodox Easter]'
|
'-e[display date of Easter]'
|
||||||
'-p[assume as by ncal]'
|
'-j[display Julian days]'
|
||||||
'-s[country code]'
|
'-o[display date of Orthodox Easter]'
|
||||||
'-w[print number of the week below each column]'
|
'-m[display the specified month]:month'
|
||||||
|
'-p[print the country codes and switching days from Julian to Gregorian Calendar]'
|
||||||
|
'-s[assume the switch from Julian to Gregorian Calendar at the date associated with the country_code]:country_code'
|
||||||
|
'-w[print the number of the week below each week column]'
|
||||||
|
'-y[display a calendar for the specified year]:year'
|
||||||
|
'-3[display the previous, current and next month surrounding today]'
|
||||||
|
'-A[months to add after]:months'
|
||||||
|
'-B[months to add before]:months'
|
||||||
|
'-C[switch to cal mode]'
|
||||||
|
'-d[use yyyy-mm as the current date]:yyyy-mm'
|
||||||
|
'-H[use yyyy-mm-dd as the current date]:yyyy-mm-dd'
|
||||||
|
'-M[weeks start on Monday]'
|
||||||
|
'-S[weeks start on Sunday]'
|
||||||
|
'-W[first week of the year has at least number days]:number'
|
||||||
|
'-b[use oldstyle format for ncal output]'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
case $OSTYPE in
|
||||||
|
(linux*)
|
||||||
|
args+=(
|
||||||
|
'-b[use oldstyle format for ncal output]'
|
||||||
|
'-1[display only the current month]'
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
args+=(
|
||||||
|
'-N[switch to ncal mode]'
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
_arguments "${args[@]}" \
|
_arguments "${args[@]}" \
|
||||||
'-j[display Julian days]' \
|
|
||||||
'-y[display a calendar for the current year]' \
|
|
||||||
'::month' \
|
'::month' \
|
||||||
':year'
|
':year'
|
||||||
|
|
Loading…
Reference in a new issue