Date: Wed, 4 Mar 2020 10:08:25 +0100 From: Gordon Bergling <gbergling@gmail.com> To: Conrad Meyer <cem@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r358562 - in head: . share/man/man5 share/man/man7 tools/build/options tools/tools/nanobsd/dhcpd tools/tools/nanobsd/embedded usr.bin usr.bin/calendar usr.bin/calendar/calendars usr.bin... Message-ID: <B81F73C7-9456-4C7E-BB22-F8ED0B26AE2C@gmail.com> In-Reply-To: <202003030020.0230K9h2002380@repo.freebsd.org> References: <202003030020.0230K9h2002380@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for the revert. I handcrafted https://reviews.freebsd.org/D23581 = <https://reviews.freebsd.org/D23581> a while ago, and this took me two = days. Gordon > Am 03.03.2020 um 01:20 schrieb Conrad Meyer <cem@freebsd.org>: >=20 > Author: cem > Date: Tue Mar 3 00:20:08 2020 > New Revision: 358562 > URL: https://svnweb.freebsd.org/changeset/base/358562 >=20 > Log: > Add extremely useful calendar(1) application to FreeBSD >=20 > It does extremely useful things like execute sendmail and spew = dubiously > accurate factoids. >=20 > =46rom the feedback, it seems like it is an essential utility in a = modern unix > and not at all a useless bikeshed. How do those Linux people live = without it? > Reverts r358561. >=20 > Added: > head/tools/build/options/WITHOUT_CALENDAR > - copied unchanged from r358560, = head/tools/build/options/WITHOUT_CALENDAR > head/usr.bin/calendar/Makefile > - copied unchanged from r358560, head/usr.bin/calendar/Makefile > head/usr.bin/calendar/Makefile.depend > - copied unchanged from r358560, = head/usr.bin/calendar/Makefile.depend > head/usr.bin/calendar/calendar.1 > - copied unchanged from r358560, head/usr.bin/calendar/calendar.1 > head/usr.bin/calendar/calendar.c > - copied unchanged from r358560, head/usr.bin/calendar/calendar.c > head/usr.bin/calendar/calendar.h > - copied unchanged from r358560, head/usr.bin/calendar/calendar.h > head/usr.bin/calendar/calendars/calendar.all > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.all > head/usr.bin/calendar/calendars/calendar.australia > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.australia > head/usr.bin/calendar/calendars/calendar.birthday > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.birthday > head/usr.bin/calendar/calendars/calendar.brazilian > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.brazilian > head/usr.bin/calendar/calendars/calendar.christian > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.christian > head/usr.bin/calendar/calendars/calendar.computer > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.computer > head/usr.bin/calendar/calendars/calendar.croatian > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.croatian > head/usr.bin/calendar/calendars/calendar.dutch > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.dutch > head/usr.bin/calendar/calendars/calendar.french > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.french > head/usr.bin/calendar/calendars/calendar.german > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.german > head/usr.bin/calendar/calendars/calendar.history > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.history > head/usr.bin/calendar/calendars/calendar.holiday > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.holiday > head/usr.bin/calendar/calendars/calendar.hungarian > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.hungarian > head/usr.bin/calendar/calendars/calendar.judaic > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.judaic > head/usr.bin/calendar/calendars/calendar.lotr > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.lotr > head/usr.bin/calendar/calendars/calendar.music > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.music > head/usr.bin/calendar/calendars/calendar.newzealand > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.newzealand > head/usr.bin/calendar/calendars/calendar.russian > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.russian > head/usr.bin/calendar/calendars/calendar.southafrica > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.southafrica > head/usr.bin/calendar/calendars/calendar.ukrainian > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.ukrainian > head/usr.bin/calendar/calendars/calendar.usholiday > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.usholiday > head/usr.bin/calendar/calendars/calendar.world > - copied unchanged from r358560, = head/usr.bin/calendar/calendars/calendar.world > head/usr.bin/calendar/calendars/de_AT.ISO_8859-15/ > - copied from r358560, = head/usr.bin/calendar/calendars/de_AT.ISO_8859-15/ > head/usr.bin/calendar/calendars/de_DE.ISO8859-1/ > - copied from r358560, = head/usr.bin/calendar/calendars/de_DE.ISO8859-1/ > head/usr.bin/calendar/calendars/fr_FR.ISO8859-1/ > - copied from r358560, = head/usr.bin/calendar/calendars/fr_FR.ISO8859-1/ > head/usr.bin/calendar/calendars/hr_HR.ISO8859-2/ > - copied from r358560, = head/usr.bin/calendar/calendars/hr_HR.ISO8859-2/ > head/usr.bin/calendar/calendars/hu_HU.ISO8859-2/ > - copied from r358560, = head/usr.bin/calendar/calendars/hu_HU.ISO8859-2/ > head/usr.bin/calendar/calendars/pt_BR.ISO8859-1/ > - copied from r358560, = head/usr.bin/calendar/calendars/pt_BR.ISO8859-1/ > head/usr.bin/calendar/calendars/pt_BR.UTF-8/ > - copied from r358560, = head/usr.bin/calendar/calendars/pt_BR.UTF-8/ > head/usr.bin/calendar/calendars/ru_RU.KOI8-R/ > - copied from r358560, = head/usr.bin/calendar/calendars/ru_RU.KOI8-R/ > head/usr.bin/calendar/calendars/ru_RU.UTF-8/ > - copied from r358560, = head/usr.bin/calendar/calendars/ru_RU.UTF-8/ > head/usr.bin/calendar/calendars/uk_UA.KOI8-U/ > - copied from r358560, = head/usr.bin/calendar/calendars/uk_UA.KOI8-U/ > head/usr.bin/calendar/dates.c > - copied unchanged from r358560, head/usr.bin/calendar/dates.c > head/usr.bin/calendar/day.c > - copied unchanged from r358560, head/usr.bin/calendar/day.c > head/usr.bin/calendar/events.c > - copied unchanged from r358560, head/usr.bin/calendar/events.c > head/usr.bin/calendar/io.c > - copied unchanged from r358560, head/usr.bin/calendar/io.c > head/usr.bin/calendar/locale.c > - copied unchanged from r358560, head/usr.bin/calendar/locale.c > head/usr.bin/calendar/ostern.c > - copied unchanged from r358560, head/usr.bin/calendar/ostern.c > head/usr.bin/calendar/parsedata.c > - copied unchanged from r358560, head/usr.bin/calendar/parsedata.c > head/usr.bin/calendar/paskha.c > - copied unchanged from r358560, head/usr.bin/calendar/paskha.c > head/usr.bin/calendar/pathnames.h > - copied unchanged from r358560, head/usr.bin/calendar/pathnames.h > head/usr.bin/calendar/pom.c > - copied unchanged from r358560, head/usr.bin/calendar/pom.c > head/usr.bin/calendar/sunpos.c > - copied unchanged from r358560, head/usr.bin/calendar/sunpos.c > head/usr.bin/calendar/tests/ > - copied from r358560, head/usr.bin/calendar/tests/ > head/usr.sbin/periodic/etc/daily/300.calendar > - copied unchanged from r358560, = head/usr.sbin/periodic/etc/daily/300.calendar > Modified: > head/ObsoleteFiles.inc > head/share/man/man5/periodic.conf.5 > head/share/man/man5/src.conf.5 > head/share/man/man7/hier.7 > head/tools/tools/nanobsd/dhcpd/common > head/tools/tools/nanobsd/embedded/common > head/usr.bin/Makefile > head/usr.bin/leave/leave.1 > head/usr.sbin/periodic/etc/daily/Makefile > head/usr.sbin/periodic/periodic.conf >=20 > Modified: head/ObsoleteFiles.inc > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/ObsoleteFiles.inc Mon Mar 2 23:37:47 2020 = (r358561) > +++ head/ObsoleteFiles.inc Tue Mar 3 00:20:08 2020 = (r358562) > @@ -36,11 +36,6 @@ > # xargs -n1 | sort | uniq -d; > # done >=20 > -# 20200302: calendar(1) removed > -OLD_DIRS+=3Dusr/share/calendar > -OLD_FILES+=3Dusr/bin/calendar > -OLD_FILES+=3Dusr/share/man/man1/calendar.1.gz > - > # 20200301: bktr removed > OLD_DIRS+=3Dusr/include/dev/bktr > OLD_FILES+=3Dusr/include/dev/bktr/ioctl_bktr.h >=20 > Modified: head/share/man/man5/periodic.conf.5 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/share/man/man5/periodic.conf.5 Mon Mar 2 23:37:47 2020 = (r358561) > +++ head/share/man/man5/periodic.conf.5 Tue Mar 3 00:20:08 2020 = (r358562) > @@ -273,6 +273,13 @@ Set to > if you want the > .Pa /etc/mail/aliases > file backed up and modifications to be displayed in your daily output. > +.It Va daily_calendar_enable > +.Pq Vt bool > +Set to > +.Dq Li YES > +if you want to run > +.Nm calendar Fl a > +daily. > .It Va daily_accounting_enable > .Pq Vt bool > Set to > @@ -963,6 +970,7 @@ is shared or distributed. > .El > .Sh SEE ALSO > .Xr apropos 1 , > +.Xr calendar 1 , > .Xr df 1 , > .Xr diff 1 , > .Xr gzip 1 , >=20 > Modified: head/share/man/man5/src.conf.5 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/share/man/man5/src.conf.5 Mon Mar 2 23:37:47 2020 = (r358561) > +++ head/share/man/man5/src.conf.5 Tue Mar 3 00:20:08 2020 = (r358562) > @@ -271,6 +271,9 @@ is set explicitly) > .El > .It Va WITHOUT_BZIP2_SUPPORT > Set to build some programs without optional bzip2 support. > +.It Va WITHOUT_CALENDAR > +Set to not build > +.Xr calendar 1 . > .It Va WITHOUT_CAPSICUM > Set to not build Capsicum support into system programs. > When set, it enforces these options: >=20 > Modified: head/share/man/man7/hier.7 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/share/man/man7/hier.7 Mon Mar 2 23:37:47 2020 = (r358561) > +++ head/share/man/man7/hier.7 Tue Mar 3 00:20:08 2020 = (r358562) > @@ -442,6 +442,10 @@ system daemons & system utilities (executed by = users) > architecture-independent files > .Pp > .Bl -tag -width Fl -compact > +.It Pa calendar/ > +a variety of pre-fab calendar files; > +see > +.Xr calendar 1 > .It Pa dict/ > word lists; > see >=20 > Copied: head/tools/build/options/WITHOUT_CALENDAR (from r358560, = head/tools/build/options/WITHOUT_CALENDAR) > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/tools/build/options/WITHOUT_CALENDAR Tue Mar 3 00:20:08 2020 = (r358562, copy of r358560, head/tools/build/options/WITHOUT_CALENDAR) > @@ -0,0 +1,3 @@ > +.\" $FreeBSD$ > +Set to not build > +.Xr calendar 1 . >=20 > Modified: head/tools/tools/nanobsd/dhcpd/common > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/tools/tools/nanobsd/dhcpd/common Mon Mar 2 23:37:47 2020 = (r358561) > +++ head/tools/tools/nanobsd/dhcpd/common Tue Mar 3 00:20:08 2020 = (r358562) > @@ -104,6 +104,7 @@ WITHOUT_ACPI=3Dtrue > WITHOUT_ATM=3Dtrue > WITHOUT_AUDIT=3Dtrue > WITHOUT_BLUETOOTH=3Dtrue > +WITHOUT_CALENDAR=3Dtrue > WITHOUT_DICT=3Dtrue > WITHOUT_EXAMPLES=3Dtrue > WITHOUT_GAMES=3Dtrue >=20 > Modified: head/tools/tools/nanobsd/embedded/common > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/tools/tools/nanobsd/embedded/common Mon Mar 2 23:37:47 2020 = (r358561) > +++ head/tools/tools/nanobsd/embedded/common Tue Mar 3 00:20:08 2020 = (r358562) > @@ -135,6 +135,7 @@ WITHOUT_ACPI=3Dtrue > WITHOUT_ATM=3Dtrue > WITHOUT_AUDIT=3Dtrue > WITHOUT_BLUETOOTH=3Dtrue > +WITHOUT_CALENDAR=3Dtrue > WITHOUT_DICT=3Dtrue > WITHOUT_EXAMPLES=3Dtrue > WITHOUT_GAMES=3Dtrue >=20 > Modified: head/usr.bin/Makefile > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/usr.bin/Makefile Mon Mar 2 23:37:47 2020 = (r358561) > +++ head/usr.bin/Makefile Tue Mar 3 00:20:08 2020 = (r358562) > @@ -195,6 +195,7 @@ SUBDIR.${MK_AT}+=3D at > SUBDIR.${MK_ATM}+=3D atm > SUBDIR.${MK_BLUETOOTH}+=3D bluetooth > SUBDIR.${MK_BSD_CPIO}+=3D cpio > +SUBDIR.${MK_CALENDAR}+=3D calendar > SUBDIR.${MK_CLANG}+=3D clang > SUBDIR.${MK_DIALOG}+=3D dpv > SUBDIR.${MK_EE}+=3D ee >=20 > Copied: head/usr.bin/calendar/Makefile (from r358560, = head/usr.bin/calendar/Makefile) > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/usr.bin/calendar/Makefile Tue Mar 3 00:20:08 2020 = (r358562, copy of r358560, head/usr.bin/calendar/Makefile) > @@ -0,0 +1,117 @@ > +# @(#)Makefile 8.1 (Berkeley) 6/6/93 > +# $FreeBSD$ > + > +.include <src.opts.mk> > + > +PROG=3D calendar > +SRCS=3D calendar.c locale.c events.c dates.c parsedata.c io.c = day.c \ > + ostern.c paskha.c pom.c sunpos.c > +LIBADD=3D m util > +INTER=3D de_AT.ISO_8859-15 de_DE.ISO8859-1 fr_FR.ISO8859-1 \ > + hr_HR.ISO8859-2 hu_HU.ISO8859-2 pt_BR.ISO8859-1 \ > + pt_BR.UTF-8 ru_RU.KOI8-R ru_RU.UTF-8 uk_UA.KOI8-U > +DE_LINKS=3D de_DE.ISO8859-15 > +FR_LINKS=3D fr_FR.ISO8859-15 > + > +.if ${MK_ICONV} =3D=3D "yes" > +CFLAGS+=3D -DWITH_ICONV > +.endif > + > +FILESGROUPS+=3D CALS > +CALS=3D calendars/calendar.all \ > + calendars/calendar.australia \ > + calendars/calendar.birthday \ > + calendars/calendar.brazilian \ > + calendars/calendar.christian \ > + calendars/calendar.computer \ > + calendars/calendar.croatian \ > + calendars/calendar.dutch \ > + calendars/calendar.freebsd \ > + calendars/calendar.french \ > + calendars/calendar.german \ > + calendars/calendar.history \ > + calendars/calendar.holiday \ > + calendars/calendar.hungarian \ > + calendars/calendar.judaic \ > + calendars/calendar.lotr \ > + calendars/calendar.music \ > + calendars/calendar.newzealand \ > + calendars/calendar.russian \ > + calendars/calendar.southafrica \ > + calendars/calendar.ukrainian \ > + calendars/calendar.usholiday \ > + calendars/calendar.world > +CALSDIR=3D ${SHAREDIR}/calendar > + > +CAL_de_AT.ISO_8859-15=3D calendar.feiertag > + > +CAL_de_DE.ISO8859-1=3D calendar.all \ > + calendar.feiertag \ > + calendar.geschichte \ > + calendar.kirche \ > + calendar.literatur \ > + calendar.musik \ > + calendar.wissenschaft > + > +CAL_fr_FR.ISO8859-1=3D calendar.all \ > + calendar.fetes \ > + calendar.french \ > + calendar.jferies \ > + calendar.proverbes > + > +CAL_hr_HR.ISO8859-2=3D calendar.all \ > + calendar.praznici > + > +CAL_hu_HU.ISO8859-2=3D calendar.all \ > + calendar.nevnapok \ > + calendar.unnepek > + > +CAL_pt_BR.ISO8859-1=3D calendar.all \ > + calendar.commemorative \ > + calendar.holidays \ > + calendar.mcommemorative > + > +CAL_pt_BR.UTF-8=3D calendar.all \ > + calendar.commemorative \ > + calendar.holidays \ > + calendar.mcommemorative > + > +CAL_ru_RU.KOI8-R=3D calendar.all \ > + calendar.common \ > + calendar.holiday \ > + calendar.military \ > + calendar.orthodox \ > + calendar.pagan > + > +CAL_ru_RU.UTF-8=3D calendar.all \ > + calendar.common \ > + calendar.holiday \ > + calendar.military \ > + calendar.orthodox \ > + calendar.pagan > + > +CAL_uk_UA.KOI8-U=3D calendar.all \ > + calendar.holiday \ > + calendar.misc \ > + calendar.orthodox > + > +.for lang in ${INTER} > +FILESGROUPS+=3D CALS_${lang} > +CALS_${lang}DIR=3D ${SHAREDIR}/calendar/${lang} > +.for file in ${CAL_${lang}} > +CALS_${lang}+=3D ${file:S@^@calendars/${lang}/@} > +.endfor > +.endfor > + > + > +.for link in ${DE_LINKS} > +SYMLINKS+=3D de_DE.ISO8859-1 ${SHAREDIR}/calendar/${link} > +.endfor > +.for link in ${FR_LINKS} > +SYMLINKS+=3D fr_FR.ISO8859-1 ${SHAREDIR}/calendar/${link} > +.endfor > + > +HAS_TESTS=3D > +SUBDIR.${MK_TESTS}+=3D tests > + > +.include <bsd.prog.mk> >=20 > Copied: head/usr.bin/calendar/Makefile.depend (from r358560, = head/usr.bin/calendar/Makefile.depend) > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/usr.bin/calendar/Makefile.depend Tue Mar 3 00:20:08 2020 = (r358562, copy of r358560, head/usr.bin/calendar/Makefile.depend) > @@ -0,0 +1,18 @@ > +# $FreeBSD$ > +# Autogenerated - do NOT edit! > + > +DIRDEPS =3D \ > + gnu/lib/csu \ > + include \ > + include/xlocale \ > + lib/${CSU_DIR} \ > + lib/libc \ > + lib/libcompiler_rt \ > + lib/msun \ > + > + > +.include <dirdeps.mk> > + > +.if ${DEP_RELDIR} =3D=3D ${_DEP_RELDIR} > +# local dependencies - needed for -jN in clean tree > +.endif >=20 > Copied: head/usr.bin/calendar/calendar.1 (from r358560, = head/usr.bin/calendar/calendar.1) > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/usr.bin/calendar/calendar.1 Tue Mar 3 00:20:08 2020 = (r358562, copy of r358560, head/usr.bin/calendar/calendar.1) > @@ -0,0 +1,333 @@ > +.\" Copyright (c) 1989, 1990, 1993 > +.\" The Regents of the University of California. All rights = reserved. > +.\" > +.\" Redistribution and use in source and binary forms, with or = without > +.\" modification, are permitted provided that the following = conditions > +.\" are met: > +.\" 1. Redistributions of source code must retain the above copyright > +.\" notice, this list of conditions and the following disclaimer. > +.\" 2. Redistributions in binary form must reproduce the above = copyright > +.\" notice, this list of conditions and the following disclaimer = in the > +.\" documentation and/or other materials provided with the = distribution. > +.\" 3. Neither the name of the University nor the names of its = contributors > +.\" may be used to endorse or promote products derived from this = software > +.\" without specific prior written permission. > +.\" > +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS = IS'' AND > +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, = THE > +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A = PARTICULAR PURPOSE > +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE = LIABLE > +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR = CONSEQUENTIAL > +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE = GOODS > +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS = INTERRUPTION) > +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT > +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN = ANY WAY > +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE = POSSIBILITY OF > +.\" SUCH DAMAGE. > +.\" > +.\" @(#)calendar.1 8.1 (Berkeley) 6/29/93 > +.\" $FreeBSD$ > +.\" > +.Dd July 24, 2016 > +.Dt CALENDAR 1 > +.Os > +.Sh NAME > +.Nm calendar > +.Nd reminder service > +.Sh SYNOPSIS > +.Nm > +.Op Fl A Ar num > +.Op Fl a > +.Op Fl B Ar num > +.Op Fl D Ar moon|sun > +.Op Fl d > +.Op Fl F Ar friday > +.Op Fl f Ar calendarfile > +.Op Fl l Ar longitude > +.Oo > +.Bk -words > +.Fl t Ar dd Ns > +.Sm off > +.Op . Ar mm Op . Ar year > +.Sm on > +.Ek > +.Oc > +.Op Fl U Ar UTC-offset > +.Op Fl W Ar num > +.Sh DESCRIPTION > +The > +.Nm > +utility checks the current directory for a file named > +.Pa calendar > +and displays lines that fall into the specified date range. > +On the day before a weekend (normally Friday), events for the next > +three days are displayed. > +.Pp > +The following options are available: > +.Bl -tag -width Ds > +.It Fl A Ar num > +Print lines from today and the next > +.Ar num > +days (forward, future). > +.It Fl a > +Process the ``calendar'' files of all users and mail the results > +to them. > +This requires super-user privileges. > +.It Fl B Ar num > +Print lines from today and the previous > +.Ar num > +days (backward, past). > +.It Fl D Ar moon|sun > +Print UTC offset, longitude and moon or sun information. > +.It Fl d > +Debug option: print current date information. > +.It Fl F Ar friday > +Specify which day of the week is ``Friday'' (the day before the > +weekend begins). > +Default is 5. > +.It Fl f Pa calendarfile > +Use > +.Pa calendarfile > +as the default calendar file. > +.It Fl l Ar longitude > +Perform lunar and solar calculations from this longitude. > +If neither longitude nor UTC offset is specified, the calculations = will > +be based on the difference between UTC time and localtime. > +If both are specified, UTC offset overrides longitude. > +.It Xo Fl t > +.Sm off > +.Ar dd > +.Op . Ar mm Op . Ar year > +.Sm on > +.Xc > +For test purposes only: set date directly to argument values. > +.It Fl U Ar UTC-offset > +Perform lunar and solar calculations from this UTC offset. > +If neither UTC offset nor longitude is specified, the calculations > +will be based on the difference between UTC time and localtime. > +If both are specified, UTC offset overrides longitude. > +.It Fl W Ar num > +Print lines from today and the next > +.Ar num > +days (forward, future). > +Ignore weekends when calculating the number of days. > +.El > +.Sh FILE FORMAT > +To handle calendars in your national code table you can specify > +.Dq LANG=3D<locale_name> > +in the calendar file as early as possible. > +.Pp > +To handle the local name of sequences, you can specify them as: > +.Dq SEQUENCE=3D<first> <second> <third> <fourth> <fifth> <last> > +in the calendar file as early as possible. > +.Pp > +The names of the following special days are recognized: > +.Bl -tag -width 123456789012345 -compact > +.It Easter > +Catholic Easter. > +.It Paskha > +Orthodox Easter. > +.It NewMoon > +The lunar New Moon. > +.It FullMoon > +The lunar Full Moon. > +.It MarEquinox > +The solar equinox in March. > +.It JunSolstice > +The solar solstice in June. > +.It SepEquinox > +The solar equinox in September. > +.It DecSolstice > +The solar solstice in December. > +.It ChineseNewYear > +The first day of the Chinese year. > +.El > +These names may be reassigned to their local names via an assignment > +like > +.Dq Easter=3DPasen > +in the calendar file. > +.Pp > +Other lines should begin with a month and day. > +They may be entered in almost any format, either numeric or as = character > +strings. > +If the proper locale is set, national month and weekday > +names can be used. > +A single asterisk (``*'') matches every month. > +A day without a month matches that day of every week. > +A month without a day matches the first of that month. > +Two numbers default to the month followed by the day. > +Lines with leading tabs default to the last entered date, allowing > +multiple line specifications for a single date. > +.Pp > +The names of the recognized special days may be followed by a > +positive or negative integer, like: > +.Dq Easter+3 > +or > +.Dq Paskha-4 . > +.Pp > +Weekdays may be followed by ``-4'' ...\& ``+5'' (aliases for > +last, first, second, third, fourth) for moving events like > +``the last Monday in April''. > +.Pp > +By convention, dates followed by an asterisk are not fixed, i.e., = change > +from year to year. > +.Pp > +Day descriptions start after the first <tab> character in the line; > +if the line does not contain a <tab> character, it is not displayed. > +If the first character in the line is a <tab> character, it is = treated as > +a continuation of the previous line. > +.Pp > +The > +.Nm > +file is preprocessed by a limited subset of > +.Xr cpp 1 > +internally, allowing the inclusion of shared files such as > +lists of company holidays or meetings. > +This limited subset consists of \fB#include #ifndef #endif\fR and = \fB#define\fR. > +If the shared file is not referenced by a full pathname, > +.Xr calendar 1 > +searches in the current (or home) directory first, and then in the > +directory > +.Pa /usr/share/calendar . > +Empty lines and lines protected by the C commenting syntax > +.Pq Li /* ... */ > +are ignored. > +.Pp > +Some possible calendar entries (<tab> characters highlighted by > +\fB\et\fR sequence) > +.Bd -unfilled -offset indent > +LANG=3DC > +Easter=3DOstern > + > +#include <calendar.usholiday> > +#include <calendar.birthday> > + > +6/15\fB\et\fRJune 15 (if ambiguous, will default to month/day). > +Jun. 15\fB\et\fRJune 15. > +15 June\fB\et\fRJune 15. > +Thursday\fB\et\fREvery Thursday. > +June\fB\et\fREvery June 1st. > +15 *\fB\et\fR15th of every month. > +2010/4/15\fB\et\fR15 April 2010 > + > +May Sun+2\fB\et\fRsecond Sunday in May (Muttertag) > +04/SunLast\fB\et\fRlast Sunday in April, > +\fB\et\fRsummer time in Europe > +Easter\fB\et\fREaster > +Ostern-2\fB\et\fRGood Friday (2 days before Easter) > +Paskha\fB\et\fROrthodox Easter > + > +.Ed > +.Sh FILES > +.Bl -tag -width calendar.christian -compact > +.It Pa calendar > +file in current directory. > +.It Pa ~/.calendar > +.Pa calendar > +HOME directory. > +A chdir is done into this directory if it exists. > +.It Pa ~/.calendar/calendar > +calendar file to use if no calendar file exists in the current = directory. > +.It Pa ~/.calendar/nomail > +do not send mail if this file exists. > +.El > +.Pp > +The following default calendar files are provided in > +.Pa /usr/share/calendar: > +.Pp > +.Bl -tag -width calendar.southafrica -compact > +.It Pa calendar.all > +File which includes all the default files. > +.It Pa calendar.australia > +Calendar of events in Australia. > +.It Pa calendar.birthday > +Births and deaths of famous (and not-so-famous) people. > +.It Pa calendar.christian > +Christian holidays. > +This calendar should be updated yearly by the local system = administrator > +so that roving holidays are set correctly for the current year. > +.It Pa calendar.computer > +Days of special significance to computer people. > +.It Pa calendar.croatian > +Calendar of events in Croatia. > +.It Pa calendar.dutch > +Calendar of events in the Netherlands. > +.It Pa calendar.freebsd > +Birthdays of > +.Fx > +committers. > +.It Pa calendar.french > +Calendar of events in France. > +.It Pa calendar.german > +Calendar of events in Germany. > +.It Pa calendar.history > +Everything else, mostly U.S.\& historical events. > +.It Pa calendar.holiday > +Other holidays, including the not-well-known, obscure, and > +.Em really > +obscure. > +.It Pa calendar.judaic > +Jewish holidays. > +The entries for this calendar have been obtained from the port > +deskutils/hebcal. > +.It Pa calendar.music > +Musical events, births, and deaths. > +Strongly oriented toward rock 'n' roll. > +.It Pa calendar.newzealand > +Calendar of events in New Zealand. > +.It Pa calendar.russian > +Russian calendar. > +.It Pa calendar.southafrica > +Calendar of events in South Africa. > +.It Pa calendar.usholiday > +U.S.\& holidays. > +This calendar should be updated yearly by the local system = administrator > +so that roving holidays are set correctly for the current year. > +.It Pa calendar.world > +Includes all calendar files except for national files. > +.El > +.Sh COMPATIBILITY > +The > +.Nm > +program previously selected lines which had the correct date anywhere > +in the line. > +This is no longer true, the date is only recognized when it occurs > +at the beginning of a line. > +.Sh SEE ALSO > +.Xr at 1 , > +.Xr mail 1 , > +.Xr cron 8 > +.Sh HISTORY > +A > +.Nm > +command appeared in > +.At v7 . > +.Sh NOTES > +Chinese New Year is calculated at 120 degrees east of Greenwich, > +which roughly corresponds with the east coast of China. > +For people west of China, this might result that the start of Chinese > +New Year and the day of the related new moon might differ. > +.Pp > +The phases of the moon and the longitude of the sun are calculated > +against the local position which corresponds with 30 degrees times > +the time-difference towards Greenwich. > +.Pp > +The new and full moons are happening on the day indicated: They > +might happen in the time period in the early night or in the late > +evening. > +It does not indicate that they are starting in the night on that = date. > +.Pp > +Because of minor differences between the output of the formulas > +used and other sources on the Internet, Druids and Werewolves should > +double-check the start and end time of solar and lunar events. > +.Sh BUGS > +The > +.Nm > +internal cpp does not correctly do #ifndef and will discard the rest > +of the file if a #ifndef is triggered. > +It also has a maximum of 50 include file and/or 100 #defines > +and only recognises #include, #define and > +#ifndef. > +.Pp > +There is no possibility to properly specify the local position > +needed for solar and lunar calculations. >=20 > Copied: head/usr.bin/calendar/calendar.c (from r358560, = head/usr.bin/calendar/calendar.c) > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/usr.bin/calendar/calendar.c Tue Mar 3 00:20:08 2020 = (r358562, copy of r358560, head/usr.bin/calendar/calendar.c) > @@ -0,0 +1,258 @@ > +/*- > + * SPDX-License-Identifier: BSD-3-Clause > + * > + * Copyright (c) 1989, 1993, 1994 > + * The Regents of the University of California. All rights = reserved. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. Redistributions in binary form must reproduce the above = copyright > + * notice, this list of conditions and the following disclaimer in = the > + * documentation and/or other materials provided with the = distribution. > + * 3. Neither the name of the University nor the names of its = contributors > + * may be used to endorse or promote products derived from this = software > + * without specific prior written permission. > + * > + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS = IS'' AND > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, = THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR = PURPOSE > + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE = LIABLE > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR = CONSEQUENTIAL > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE = GOODS > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS = INTERRUPTION) > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN = ANY WAY > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE = POSSIBILITY OF > + * SUCH DAMAGE. > + */ > + > +#ifndef lint > +static const char copyright[] =3D > +"@(#) Copyright (c) 1989, 1993\n\ > + The Regents of the University of California. All rights = reserved.\n"; > +#endif > + > +#if 0 > +#ifndef lint > +static char sccsid[] =3D "@(#)calendar.c 8.3 (Berkeley) 3/25/94"; > +#endif > +#endif > + > +#include <sys/cdefs.h> > +__FBSDID("$FreeBSD$"); > + > +#include <sys/types.h> > +#include <err.h> > +#include <errno.h> > +#include <locale.h> > +#include <login_cap.h> > +#include <langinfo.h> > +#include <pwd.h> > +#include <stdio.h> > +#include <stdlib.h> > +#include <string.h> > +#include <time.h> > +#include <unistd.h> > + > +#include "calendar.h" > + > +#define UTCOFFSET_NOTSET 100 /* Expected between -24 = and +24 */ > +#define LONGITUDE_NOTSET 1000 /* Expected between -360 = and +360 */ > + > +struct passwd *pw; > +int doall =3D 0; > +int debug =3D 0; > +static char *DEBUG =3D NULL; > +static time_t f_time =3D 0; > +double UTCOffset =3D UTCOFFSET_NOTSET; > +int EastLongitude =3D LONGITUDE_NOTSET; > +#ifdef WITH_ICONV > +const char *outputEncoding =3D NULL; > +#endif > + > +static void usage(void) __dead2; > + > +int > +main(int argc, char *argv[]) > +{ > + int f_dayAfter =3D 0; /* days after current = date */ > + int f_dayBefore =3D 0; /* days before current date */ > + int Friday =3D 5; /* day before weekend */ > + > + int ch; > + struct tm tp1, tp2; > + > + (void)setlocale(LC_ALL, ""); > + > + while ((ch =3D getopt(argc, argv, "-A:aB:D:dF:f:l:t:U:W:?")) !=3D = -1) > + switch (ch) { > + case '-': /* backward contemptible */ > + case 'a': > + if (getuid()) { > + errno =3D EPERM; > + err(1, NULL); > + } > + doall =3D 1; > + break; > + > + case 'W': /* we don't need no steenking Fridays */ > + Friday =3D -1; > + /* FALLTHROUGH */ > + > + case 'A': /* days after current date */ > + f_dayAfter =3D atoi(optarg); > + if (f_dayAfter < 0) > + errx(1, "number of days must be = positive"); > + break; > + > + case 'B': /* days before current date */ > + f_dayBefore =3D atoi(optarg); > + if (f_dayBefore < 0) > + errx(1, "number of days must be = positive"); > + break; > + > + case 'D': /* debug output of sun and moon info */ > + DEBUG =3D optarg; > + break; > + > + case 'd': /* debug output of current date */ > + debug =3D 1; > + break; > + > + case 'F': /* Change the time: When does weekend start? = */ > + Friday =3D atoi(optarg); > + break; > + > + case 'f': /* other calendar file */ > + calendarFile =3D optarg; > + break; > + > + case 'l': /* Change longitudal position */ > + EastLongitude =3D strtol(optarg, NULL, 10); > + break; > + > + case 't': /* other date, for tests */ > + f_time =3D Mktime(optarg); > + break; > + > + case 'U': /* Change UTC offset */ > + UTCOffset =3D strtod(optarg, NULL); > + break; > + > + case '?': > + default: > + usage(); > + } > + > + argc -=3D optind; > + argv +=3D optind; > + > + if (argc) > + usage(); > + > + /* use current time */ > + if (f_time <=3D 0) > + (void)time(&f_time); > + > + /* if not set, determine where I could be */ > + { > + if (UTCOffset =3D=3D UTCOFFSET_NOTSET && > + EastLongitude =3D=3D LONGITUDE_NOTSET) { > + /* Calculate on difference between here and UTC = */ > + time_t t; > + struct tm tm; > + long utcoffset, hh, mm, ss; > + double uo; > + > + time(&t); > + localtime_r(&t, &tm); > + utcoffset =3D tm.tm_gmtoff; > + /* seconds -> hh:mm:ss */ > + hh =3D utcoffset / SECSPERHOUR; > + utcoffset %=3D SECSPERHOUR; > + mm =3D utcoffset / SECSPERMINUTE; > + utcoffset %=3D SECSPERMINUTE; > + ss =3D utcoffset; > + > + /* hh:mm:ss -> hh.mmss */ > + uo =3D mm + (100.0 * (ss / 60.0)); > + uo /=3D 60.0 / 100.0; > + uo =3D hh + uo / 100; > + > + UTCOffset =3D uo; > + EastLongitude =3D UTCOffset * 15; > + } else if (UTCOffset =3D=3D UTCOFFSET_NOTSET) { > + /* Base on information given */ > + UTCOffset =3D EastLongitude / 15; > + } else if (EastLongitude =3D=3D LONGITUDE_NOTSET) { > + /* Base on information given */ > + EastLongitude =3D UTCOffset * 15; > + } > + } > + > + settimes(f_time, f_dayBefore, f_dayAfter, Friday, &tp1, &tp2); > + generatedates(&tp1, &tp2); > + > + /* > + * FROM now on, we are working in UTC. > + * This will only affect moon and sun related events anyway. > + */ > + if (setenv("TZ", "UTC", 1) !=3D 0) > + errx(1, "setenv: %s", strerror(errno)); > + tzset(); > + > + if (debug) > + dumpdates(); > + > + if (DEBUG !=3D NULL) { > + dodebug(DEBUG); > + exit(0); > + } > + > + if (doall) > + while ((pw =3D getpwent()) !=3D NULL) { > + pid_t pid; > + > + if (chdir(pw->pw_dir) =3D=3D -1) > + continue; > + pid =3D fork(); > + if (pid < 0) > + err(1, "fork"); > + if (pid =3D=3D 0) { > + login_cap_t *lc; > + > + lc =3D login_getpwclass(pw); > + if (setusercontext(lc, pw, pw->pw_uid, > + LOGIN_SETALL) !=3D 0) > + errx(1, "setusercontext"); > + cal(); > + exit(0); > + } > + } > + else { > +#ifdef WITH_ICONV > + /* Save the information about the encoding used in the = terminal. */ > + outputEncoding =3D strdup(nl_langinfo(CODESET)); > + if (outputEncoding =3D=3D NULL) > + errx(1, "cannot allocate memory"); > +#endif > + cal(); > + } > + exit(0); > +} > + > + > +static void __dead2 > +usage(void) > +{ > + > + fprintf(stderr, "%s\n%s\n%s\n", > + "usage: calendar [-A days] [-a] [-B days] [-D sun|moon] = [-d]", > + " [-F friday] [-f calendarfile] [-l = longitude]", > + " [-t dd[.mm[.year]]] [-U utcoffset] [-W = days]" > + ); > + exit(1); > +} >=20 > Copied: head/usr.bin/calendar/calendar.h (from r358560, = head/usr.bin/calendar/calendar.h) > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/usr.bin/calendar/calendar.h Tue Mar 3 00:20:08 2020 = (r358562, copy of r358560, head/usr.bin/calendar/calendar.h) > @@ -0,0 +1,206 @@ > +/*- > + * SPDX-License-Identifier: BSD-3-Clause > + * > + * Copyright (c) 1989, 1993, 1994 > + * The Regents of the University of California. All rights = reserved. > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. Redistributions in binary form must reproduce the above = copyright > + * notice, this list of conditions and the following disclaimer in = the > + * documentation and/or other materials provided with the = distribution. > + * 3. Neither the name of the University nor the names of its = contributors > + * may be used to endorse or promote products derived from this = software > + * without specific prior written permission. > + * > + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS = IS'' AND > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, = THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR = PURPOSE > + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE = LIABLE > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR = CONSEQUENTIAL > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE = GOODS > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS = INTERRUPTION) > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN = ANY WAY > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE = POSSIBILITY OF > + * SUCH DAMAGE. > + * > + * $FreeBSD$ > + */ > + > +#include <sys/types.h> > +#include <sys/uio.h> > + > +#define SECSPERDAY (24 * 60 * 60) > +#define SECSPERHOUR (60 * 60) > +#define SECSPERMINUTE (60) > +#define MINSPERHOUR (60) > +#define HOURSPERDAY (24) > +#define FSECSPERDAY (24.0 * 60.0 * 60.0) > +#define FSECSPERHOUR (60.0 * 60.0) > +#define FSECSPERMINUTE (60.0) > +#define FMINSPERHOUR (60.0) > +#define FHOURSPERDAY (24.0) > + > +#define DAYSPERYEAR 365 > +#define DAYSPERLEAPYEAR 366 > + > +/* Not yet categorized */ > + > +extern struct passwd *pw; > +extern int doall; > +extern time_t t1, t2; > +extern const char *calendarFile; > +extern int yrdays; > +extern struct fixs neaster, npaskha, ncny, nfullmoon, nnewmoon; > +extern struct fixs nmarequinox, nsepequinox, njunsolstice, = ndecsolstice; > +extern double UTCOffset; > +extern int EastLongitude; > +#ifdef WITH_ICONV > +extern const char *outputEncoding; > +#endif > + > +#define isleap(y) ((((y) % 4) =3D=3D 0 && ((y) % 100) !=3D 0) || ((y) = % 400) =3D=3D 0) > + > +/* Flags to determine the returned values by determinestyle() in = parsedata.c */ > +#define F_NONE 0x00000 > +#define F_MONTH 0x00001 > +#define F_DAYOFWEEK 0x00002 > +#define F_DAYOFMONTH 0x00004 > +#define F_MODIFIERINDEX 0x00008 > +#define F_MODIFIEROFFSET 0x00010 > +#define F_SPECIALDAY 0x00020 > +#define F_ALLMONTH 0x00040 > +#define F_ALLDAY 0x00080 > +#define F_VARIABLE 0x00100 > +#define F_EASTER 0x00200 > +#define F_CNY 0x00400 > +#define F_PASKHA 0x00800 > +#define F_NEWMOON 0x01000 > +#define F_FULLMOON 0x02000 > +#define F_MAREQUINOX 0x04000 > +#define F_SEPEQUINOX 0x08000 > +#define F_JUNSOLSTICE 0x10000 > +#define F_DECSOLSTICE 0x20000 > +#define F_YEAR 0x40000 > + > +#define STRING_EASTER "Easter" > +#define STRING_PASKHA "Paskha" > +#define STRING_CNY "ChineseNewYear" > +#define STRING_NEWMOON "NewMoon" > +#define STRING_FULLMOON "FullMoon" > +#define STRING_MAREQUINOX "MarEquinox" > +#define STRING_SEPEQUINOX "SepEquinox" > +#define STRING_JUNSOLSTICE "JunSolstice" > +#define STRING_DECSOLSTICE "DecSolstice" > + > +#define MAXCOUNT 125 /* Random number of = maximum number of > + * repeats of an event. Should = be 52 > + * (number of weeks per year), = if you > + * want to show two years then = it > + * should be 104. If you are = seeing > + * more than this you are using = this > + * program wrong. > + */ > + > +/* > + * All the astronomical calculations are carried out for the meridian = 120 > + * degrees east of Greenwich. > + */ > +#define UTCOFFSET_CNY 8.0 > + > +extern int debug; /* show parsing of the input */ > +extern int year1, year2; > + > +/* events.c */ > +/* > + * Event sorting related functions: > + * - Use event_add() to create a new event > + * - Use event_continue() to add more text to the last added event > + * - Use event_print_all() to display them in time chronological = order > + */ > +struct event *event_add(int, int, int, char *, int, char *, char *); > +void event_continue(struct event *events, char *txt); > +void event_print_all(FILE *fp); > +struct event { > + int year; > + int month; > + int day; > + int var; > + char *date; > + char *text; > + char *extra; > + struct event *next; > +}; > + > +/* locale.c */ > + > +struct fixs { > + char *name; > + size_t len; > +}; > + > +extern const char *days[]; > +extern const char *fdays[]; > +extern const char *fmonths[]; > +extern const char *months[]; > +extern const char *sequences[]; > +extern struct fixs fndays[8]; /* full national days = names */ > +extern struct fixs fnmonths[13]; /* full national months names */ > +extern struct fixs ndays[8]; /* short national days names */ > +extern struct fixs nmonths[13]; /* short national month = names */ > +extern struct fixs nsequences[10]; > + > +void setnnames(void); > +void setnsequences(char *); > + > +/* day.c */ >=20 > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to = "svn-src-head-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B81F73C7-9456-4C7E-BB22-F8ED0B26AE2C>