From 5fd83771641d15c418f747bd343ba6738d3875f7 Mon Sep 17 00:00:00 2001 From: Cameron Katri Date: Sun, 9 May 2021 14:20:58 -0400 Subject: Import macOS userland adv_cmds-176 basic_cmds-55 bootstrap_cmds-116.100.1 developer_cmds-66 diskdev_cmds-667.40.1 doc_cmds-53.60.1 file_cmds-321.40.3 mail_cmds-35 misc_cmds-34 network_cmds-606.40.1 patch_cmds-17 remote_cmds-63 shell_cmds-216.60.1 system_cmds-880.60.2 text_cmds-106 --- misc_cmds/calendar/calendar.1 | 265 +++++ misc_cmds/calendar/calendar.c | 153 +++ misc_cmds/calendar/calendar.h | 93 ++ misc_cmds/calendar/calendars/calendar.all | 20 + misc_cmds/calendar/calendars/calendar.australia | 58 + misc_cmds/calendar/calendars/calendar.birthday | 299 +++++ misc_cmds/calendar/calendars/calendar.christian | 32 + misc_cmds/calendar/calendars/calendar.computer | 76 ++ misc_cmds/calendar/calendars/calendar.croatian | 12 + misc_cmds/calendar/calendars/calendar.dutch | 78 ++ misc_cmds/calendar/calendars/calendar.freebsd | 283 +++++ misc_cmds/calendar/calendars/calendar.french | 12 + misc_cmds/calendar/calendars/calendar.german | 12 + misc_cmds/calendar/calendars/calendar.history | 476 ++++++++ misc_cmds/calendar/calendars/calendar.holiday | 563 ++++++++++ misc_cmds/calendar/calendars/calendar.hungarian | 12 + misc_cmds/calendar/calendars/calendar.judaic | 227 ++++ misc_cmds/calendar/calendars/calendar.lotr | 48 + misc_cmds/calendar/calendars/calendar.music | 240 ++++ misc_cmds/calendar/calendars/calendar.newzealand | 25 + misc_cmds/calendar/calendars/calendar.russian | 12 + misc_cmds/calendar/calendars/calendar.southafrica | 23 + misc_cmds/calendar/calendars/calendar.ukrainian | 12 + misc_cmds/calendar/calendars/calendar.usholiday | 42 + misc_cmds/calendar/calendars/calendar.world | 19 + .../calendars/de_AT.ISO_8859-15/calendar.feiertag | 62 ++ .../calendars/de_DE.ISO8859-1/calendar.all | 17 + .../calendars/de_DE.ISO8859-1/calendar.feiertag | 56 + .../calendars/de_DE.ISO8859-1/calendar.geschichte | 198 ++++ .../calendars/de_DE.ISO8859-1/calendar.kirche | 32 + .../calendars/de_DE.ISO8859-1/calendar.literatur | 54 + .../calendars/de_DE.ISO8859-1/calendar.musik | 66 ++ .../de_DE.ISO8859-1/calendar.wissenschaft | 19 + .../calendars/fr_FR.ISO8859-1/calendar.all | 14 + .../calendars/fr_FR.ISO8859-1/calendar.fetes | 630 +++++++++++ .../calendars/fr_FR.ISO8859-1/calendar.french | 12 + .../calendars/fr_FR.ISO8859-1/calendar.jferies | 46 + .../calendars/fr_FR.ISO8859-1/calendar.proverbes | 354 ++++++ .../calendars/hr_HR.ISO8859-2/calendar.all | 12 + .../calendars/hr_HR.ISO8859-2/calendar.praznici | 44 + .../calendars/hu_HU.ISO8859-2/calendar.all | 13 + .../calendars/hu_HU.ISO8859-2/calendar.nevnapok | 386 +++++++ .../calendars/hu_HU.ISO8859-2/calendar.unnepek | 53 + .../calendar/calendars/ru_RU.KOI8-R/calendar.all | 17 + .../calendars/ru_RU.KOI8-R/calendar.common | 90 ++ .../calendars/ru_RU.KOI8-R/calendar.holiday | 25 + .../calendars/ru_RU.KOI8-R/calendar.military | 27 + .../calendar/calendars/ru_RU.KOI8-R/calendar.msk | 16 + .../calendars/ru_RU.KOI8-R/calendar.orthodox | 34 + .../calendar/calendars/ru_RU.KOI8-R/calendar.pagan | 42 + .../calendar/calendars/uk_UA.KOI8-U/calendar.all | 14 + .../calendars/uk_UA.KOI8-U/calendar.holiday | 22 + .../calendar/calendars/uk_UA.KOI8-U/calendar.misc | 18 + .../calendars/uk_UA.KOI8-U/calendar.orthodox | 35 + misc_cmds/calendar/day.c | 498 +++++++++ misc_cmds/calendar/io.c | 470 ++++++++ misc_cmds/calendar/ostern.c | 111 ++ misc_cmds/calendar/paskha.c | 93 ++ misc_cmds/calendar/pathnames.h | 40 + misc_cmds/leave/leave.1 | 100 ++ misc_cmds/leave/leave.c | 196 ++++ misc_cmds/misc_cmds.xcodeproj/project.pbxproj | 971 ++++++++++++++++ misc_cmds/ncal/calendar.c | 330 ++++++ misc_cmds/ncal/calendar.h | 42 + misc_cmds/ncal/easter.c | 101 ++ misc_cmds/ncal/ncal.1 | 198 ++++ misc_cmds/ncal/ncal.c | 1177 ++++++++++++++++++++ misc_cmds/tsort/tsort.1 | 90 ++ misc_cmds/tsort/tsort.c | 443 ++++++++ misc_cmds/units/pathnames.h | 33 + misc_cmds/units/units.1 | 181 +++ misc_cmds/units/units.c | 749 +++++++++++++ misc_cmds/units/units.lib | 732 ++++++++++++ 73 files changed, 12055 insertions(+) create mode 100644 misc_cmds/calendar/calendar.1 create mode 100644 misc_cmds/calendar/calendar.c create mode 100644 misc_cmds/calendar/calendar.h create mode 100644 misc_cmds/calendar/calendars/calendar.all create mode 100644 misc_cmds/calendar/calendars/calendar.australia create mode 100644 misc_cmds/calendar/calendars/calendar.birthday create mode 100644 misc_cmds/calendar/calendars/calendar.christian create mode 100644 misc_cmds/calendar/calendars/calendar.computer create mode 100644 misc_cmds/calendar/calendars/calendar.croatian create mode 100644 misc_cmds/calendar/calendars/calendar.dutch create mode 100644 misc_cmds/calendar/calendars/calendar.freebsd create mode 100644 misc_cmds/calendar/calendars/calendar.french create mode 100644 misc_cmds/calendar/calendars/calendar.german create mode 100644 misc_cmds/calendar/calendars/calendar.history create mode 100644 misc_cmds/calendar/calendars/calendar.holiday create mode 100644 misc_cmds/calendar/calendars/calendar.hungarian create mode 100644 misc_cmds/calendar/calendars/calendar.judaic create mode 100644 misc_cmds/calendar/calendars/calendar.lotr create mode 100644 misc_cmds/calendar/calendars/calendar.music create mode 100644 misc_cmds/calendar/calendars/calendar.newzealand create mode 100644 misc_cmds/calendar/calendars/calendar.russian create mode 100644 misc_cmds/calendar/calendars/calendar.southafrica create mode 100644 misc_cmds/calendar/calendars/calendar.ukrainian create mode 100644 misc_cmds/calendar/calendars/calendar.usholiday create mode 100644 misc_cmds/calendar/calendars/calendar.world create mode 100644 misc_cmds/calendar/calendars/de_AT.ISO_8859-15/calendar.feiertag create mode 100644 misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.all create mode 100644 misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.feiertag create mode 100644 misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.geschichte create mode 100644 misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.kirche create mode 100644 misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.literatur create mode 100644 misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.musik create mode 100644 misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.wissenschaft create mode 100644 misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.all create mode 100644 misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.fetes create mode 100644 misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.french create mode 100644 misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.jferies create mode 100644 misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.proverbes create mode 100644 misc_cmds/calendar/calendars/hr_HR.ISO8859-2/calendar.all create mode 100644 misc_cmds/calendar/calendars/hr_HR.ISO8859-2/calendar.praznici create mode 100644 misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.all create mode 100644 misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.nevnapok create mode 100644 misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.unnepek create mode 100644 misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.all create mode 100644 misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.common create mode 100644 misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.holiday create mode 100644 misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.military create mode 100644 misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.msk create mode 100644 misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.orthodox create mode 100644 misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.pagan create mode 100644 misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.all create mode 100644 misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.holiday create mode 100644 misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.misc create mode 100644 misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.orthodox create mode 100644 misc_cmds/calendar/day.c create mode 100644 misc_cmds/calendar/io.c create mode 100644 misc_cmds/calendar/ostern.c create mode 100644 misc_cmds/calendar/paskha.c create mode 100644 misc_cmds/calendar/pathnames.h create mode 100644 misc_cmds/leave/leave.1 create mode 100644 misc_cmds/leave/leave.c create mode 100644 misc_cmds/misc_cmds.xcodeproj/project.pbxproj create mode 100644 misc_cmds/ncal/calendar.c create mode 100644 misc_cmds/ncal/calendar.h create mode 100644 misc_cmds/ncal/easter.c create mode 100644 misc_cmds/ncal/ncal.1 create mode 100644 misc_cmds/ncal/ncal.c create mode 100644 misc_cmds/tsort/tsort.1 create mode 100644 misc_cmds/tsort/tsort.c create mode 100644 misc_cmds/units/pathnames.h create mode 100644 misc_cmds/units/units.1 create mode 100644 misc_cmds/units/units.c create mode 100644 misc_cmds/units/units.lib (limited to 'misc_cmds') diff --git a/misc_cmds/calendar/calendar.1 b/misc_cmds/calendar/calendar.1 new file mode 100644 index 0000000..1d82f71 --- /dev/null +++ b/misc_cmds/calendar/calendar.1 @@ -0,0 +1,265 @@ +.\" 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. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. 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: src/usr.bin/calendar/calendar.1,v 1.38 2005/02/13 22:25:20 ru Exp $ +.\" +.Dd June 13, 2002 +.Dt CALENDAR 1 +.Os +.Sh NAME +.Nm calendar +.Nd reminder service +.Sh SYNOPSIS +.Nm +.Op Fl a +.Op Fl A Ar num +.Op Fl B Ar num +.Op Fl F Ar friday +.Op Fl f Ar calendarfile +.Oo +.Bk -words +.Fl t Ar dd Ns +.Sm off +.Op . Ar mm Op . Ar year +.Sm on +.Ek +.Oc +.Op Fl W Ar num +.Sh DESCRIPTION +The +.Nm +utility checks the current directory for a file named +.Pa calendar +and displays lines that begin with either today's date +or tomorrow's. +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 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 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 W Ar num +Print lines from today and the next +.Ar num +days (forward, future). +Ignore weekends when calculating the number of days. +.El +.Pp +To handle calendars in your national code table you can specify +.Dq LANG= +in the calendar file as early as possible. +To handle national Easter +names in the calendars +.Dq Easter= +(for Catholic Easter) or +.Dq Paskha= +(for Orthodox Easter) can be used. +.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 +``Easter'', is Easter for this year, and may be followed by a positive +or negative integer. +.Pp +``Paskha'', is Orthodox Easter for this year, and may be followed by a +positive or negative integer. +.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 character in the line; +if the line does not contain a character, it is not displayed. +If the first character in the line is a character, it is treated as +a continuation of the previous line. +.Pp +The ``calendar'' file is preprocessed by +.Xr cpp 1 , +allowing the inclusion of shared files such as lists of company holidays or +meetings. +If the shared file is not referenced by a full pathname, +.Xr cpp 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 ( characters highlighted by +\fB\et\fR sequence) +.Bd -unfilled -offset indent +LANG=C +Easter=Ostern + +#include +#include + +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. + +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: +.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.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. +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.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 cpp 1 , +.Xr mail 1 , +.Xr cron 8 +.Sh HISTORY +A +.Nm +command appeared in +.At v7 . +.Sh BUGS +The +.Nm +utility does not handle Jewish holidays and moon phases. diff --git a/misc_cmds/calendar/calendar.c b/misc_cmds/calendar/calendar.c new file mode 100644 index 0000000..ae30497 --- /dev/null +++ b/misc_cmds/calendar/calendar.c @@ -0,0 +1,153 @@ +/* + * 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. 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[] = +"@(#) Copyright (c) 1989, 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif + +#if 0 +#ifndef lint +static char sccsid[] = "@(#)calendar.c 8.3 (Berkeley) 3/25/94"; +#endif +#endif + +#include +__FBSDID("$FreeBSD: src/usr.bin/calendar/calendar.c,v 1.19 2007/05/07 11:18:30 dwmalone Exp $"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "pathnames.h" +#include "calendar.h" + +struct passwd *pw; +int doall = 0; +time_t f_time = 0; + +int f_dayAfter = 1; /* days after current date */ +int f_dayBefore = 0; /* days before current date */ +int Friday = 5; /* day before weekend */ + +int +main(int argc, char *argv[]) +{ + int ch; + + (void) setlocale(LC_ALL, ""); + + while ((ch = getopt(argc, argv, "-af:t:A:B:F:W:")) != -1) + switch (ch) { + case '-': /* backward contemptible */ + case 'a': + if (getuid()) { + errno = EPERM; + err(1, NULL); + } + doall = 1; + break; + + + case 'f': /* other calendar file */ + calendarFile = optarg; + break; + + case 't': /* other date, undocumented, for tests */ + f_time = Mktime (optarg); + break; + + case 'W': /* we don't need no steenking Fridays */ + Friday = -1; + + /* FALLTHROUGH */ + case 'A': /* days after current date */ + f_dayAfter = atoi(optarg); + break; + + case 'B': /* days before current date */ + f_dayBefore = atoi(optarg); + break; + + case 'F': + Friday = atoi(optarg); + break; + + case '?': + default: + usage(); + } + argc -= optind; + argv += optind; + + if (argc) + usage(); + + /* use current time */ + if (f_time <= 0) + (void)time(&f_time); + + settime(f_time); + + if (doall) + while ((pw = getpwent()) != NULL) { + (void)setegid(pw->pw_gid); + (void)initgroups(pw->pw_name, pw->pw_gid); + (void)seteuid(pw->pw_uid); + if (!chdir(pw->pw_dir)) + cal(); + (void)seteuid(0); + } + else + cal(); + exit(0); +} + + +void +usage(void) +{ + (void)fprintf(stderr, "%s\n%s\n", + "usage: calendar [-a] [-A days] [-B days] [-F friday] " + "[-f calendarfile]", + " [-t dd[.mm[.year]]] [-W days]"); + exit(1); +} + + diff --git a/misc_cmds/calendar/calendar.h b/misc_cmds/calendar/calendar.h new file mode 100644 index 0000000..57e84a1 --- /dev/null +++ b/misc_cmds/calendar/calendar.h @@ -0,0 +1,93 @@ +/* + * 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. 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: src/usr.bin/calendar/calendar.h,v 1.12 2007/06/09 05:54:13 grog Exp $ + */ + +#include +#include + +extern struct passwd *pw; +extern int doall; +extern struct iovec header[]; +extern struct tm *tp; +extern const char *calendarFile; +extern int *cumdays; +extern int yrdays; +extern struct fixs neaster, npaskha; + +void cal(void); +void closecal(FILE *); +int getday(char *); +int getdayvar(char *); +int getfield(char *, char **, int *); +int getmonth(char *); +int geteaster(char *, int); +int getpaskha(char *, int); +int easter(int); +int isnow(char *, int *, int *, int *); +FILE *opencal(void); +void settime(time_t); +time_t Mktime(char *); +void usage(void); +void setnnames(void); + +#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0) + +/* some flags */ +#define F_ISMONTH 0x01 /* month (Januar ...) */ +#define F_ISDAY 0x02 /* day of week (Sun, Mon, ...) */ +#define F_ISDAYVAR 0x04 /* variables day of week, like SundayLast */ +#define F_EASTER 0x08 /* Easter or easter depending days */ + +extern int f_dayAfter; /* days after current date */ +extern int f_dayBefore; /* days bevore current date */ +extern int Friday; /* day before weekend */ + +struct fixs { + char *name; + int len; +}; + +struct event *event_add(struct event *events, int month, int day, char *date, + int var, char *txt); +void event_continue(struct event *events, char *txt); +void event_print_all(FILE *fp, struct event *events); +/* Stored calendar event */ +struct event { + int month; + int day; + int var; + char *date; + char *text; + struct event *next; +}; diff --git a/misc_cmds/calendar/calendars/calendar.all b/misc_cmds/calendar/calendars/calendar.all new file mode 100644 index 0000000..c7593f6 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.all @@ -0,0 +1,20 @@ +/* + * International and national calendar files + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.all,v 1.10 2007/06/09 05:51:24 grog Exp $ + */ + +#ifndef _calendar_all_ +#define _calendar_all_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif /* !_calendar_all_ */ diff --git a/misc_cmds/calendar/calendars/calendar.australia b/misc_cmds/calendar/calendars/calendar.australia new file mode 100644 index 0000000..32a3900 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.australia @@ -0,0 +1,58 @@ +/* + * Australian holidays + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.australia,v 1.7 2006/10/06 23:20:01 flz Exp $ + */ + +#ifndef _calendar_australia_ +#define _calendar_australia_ + +LANG=en_AU.ISO8859-1 + +/* Australia */ +Jan 26 Australia Day +Mar/SunLast Daylight Savings Time ends in ACT, NSW, SA, TAS and VIC. +Apr 25 Anzac Day +Jun/MonSecond Queen's Birthday Holiday (Australia, except WA) +Oct/SunLast Daylight Savings Time starts in ACT, NSW, SA and VIC. + +/* ACT, NSW, common */ +Mar 18 Canberra Day (ACT) +8/MonFirst Bank Holiday (ACT, NSW) +10/MonFirst Labour Day (ACT, NSW, SA) + +/* Victoria */ +3/MonSecond Labour Day (Vic) +Nov/TueFirst Melbourne Cup (Vic) + +/* Tasmania */ +Feb 11 Regatta Day (Tas) +Feb 27 Launceston Cup (Tas) +Mar 11 Eight Hours Day (Tas) +Oct/SunFirst Daylight Savings Time starts in TAS. +Oct 10 Launceston Show Day (Tas) +Oct 24 Hobart Show Day (Tas) +Nov 04 Recreation Day (N Tas) + +/* South Australia */ +May/MonThird Adelaide Cup (SA) +Dec 26 Proclamation Day holiday (SA) + +/* Western Australia */ +3/MonFirst Labour Day (WA) +6/MonFirst Foundation Day (WA) +Sep 30 Queen's Birthday (WA) + +/* Northern Territory */ +5/MonFirst May Day (NT) +7/FriFirst Alice Springs Show Day (NT) +7/FriSecond Tennant Creek Show Day (NT) +7/FriThird Katherine Show Day (NT) +7/FriLast Darwin Show Day (NT) +8/MonFirst Picnic Day (NT) + +/* Queensland */ +5/MonFirst Labour Day (Qld) +Aug 14 RNA Show Day (Brisbane metro) + +#endif diff --git a/misc_cmds/calendar/calendars/calendar.birthday b/misc_cmds/calendar/calendars/calendar.birthday new file mode 100644 index 0000000..5233a0b --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.birthday @@ -0,0 +1,299 @@ +/* + * Birthday + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.birthday,v 1.35 2007/10/14 08:52:29 maxim Exp $ + */ + +#ifndef _calendar_birthday_ +#define _calendar_birthday_ + +01/01 J.D. Salinger born, 1919 +01/01 Paul Revere born in Boston, 1735 +01/02 Isaac Asimov born in Petrovichi, Russian SFSR, 1920 +01/04 George Washington Carver born in Missouri, 1864 +01/04 Jakob Grimm born, 1785 +01/04 Wilhelm Beer born, 1797, first astronomer to map Mars +01/05 DeWitt B. Brace born, 1859, inventor of spectrophotometer +01/10 Ethan Allen born, 1738 +01/11 Alexander Hamilton born in Nevis, British West Indies, 1757? +01/12 "Long" John Baldry is born in London, 1941 +01/13 Horatio Alger born, 1834 +01/13 Sophie Tucker born, 1884 +01/13 Wilhelm Wien born, 1864, Nobel prize for blackbody radiation laws +01/14 Albert Schweitzer born, 1875 +01/15 Martin Luther King, Jr. born +01/17 Benjamin Franklin born in Boston, 1706 +01/19 Edgar Allan Poe born in Boston, 1809 +01/19 Robert Edward Lee born in Stratford Estate, Virginia, 1807 +01/20 George Burns born, 1898 +01/21 Lenin died, 1924 +01/21 Thomas Jonathan "Stonewall" Jackson born in Clarksburg, VA, 1824 +01/22 Sir Francis Bacon born, 1561 +01/23 Ernst Abbe born, 1840, formulated diffraction theory +01/23 Humphrey Bogart born in New York City, 1899 +01/23 John Hancock born, 1737 +01/23 Joseph Hewes born, 1730 +01/23 Samuel Barber died, 1981 +01/24 John Belushi is born in Chicago, 1949 +01/25 Robert Burns born, 1759 +01/25 Virginia Woolf born, 1882 +01/25 W. Somerset Maugham born, 1874 +01/27 Samuel Gompers born, 1850 +01/30 Franklin Delano Roosevelt born in Hyde Park, New York, 1882 +01/31 Jackie Robinson born, 1919 +02/03 Gertrude Stein born, 1874 +02/05 Alex Harvey (SAHB) is born in Glasgow, Scotland, 1935 +02/06 King George VI of UK dies; his daughter becomes Elizabeth II, 1952 +02/07 Sinclair Lewis born, 1885 +02/08 Friedleib F. Runge born, 1795, father of paper chromatography +02/08 Jules Verne born in Nantes, France, 1828 +02/09 George Hartmann born, 1489, designed astrolabes, timepieces, etc. +02/10 Charles Lamb born, 1775 +02/10 William Allen White born, 1868 +02/11 Thos. Edison born, 1847 +02/11 William Henry Fox Talbot (photographic pioneer) born, 1800 +02/12 Abraham Lincoln born, 1809 +02/12 Charles Darwin born in Shrewsbury, England, 1809 +02/15 Galileo Galilei born in Pisa, Italy, 1564 +02/15 Susan B. Anthony born, 1820 +02/16 Pierre Bouguer born, 1698, founder of photometry +02/17 Federick Eugene Ives born, 1856, pioneer of halftone +02/17 Marion Anderson born, 1902 +02/17 T. J. Watson, Sr. born, 1874 +02/18 Ernst Mach born, 1838, philosopher & optics pioneer +02/19 Nicolas Copernicus born in Thorn, Poland, 1473 +02/20 Ludwig Boltzmann born, 1838, atomic physics pioneer +02/21 Alexis De Rochon born, 1838, developed the spyglass +02/22 George Washington born, 1732 +02/22 Pierre Jules Cesar Janssen born, 1838, found hydrogen in the sun +02/23 W.E.B. DuBois born, 1868 +02/24 Winslow Homer born, 1836 +02/25 George Harrison born in Liverpool, England, 1943 +02/25 Renoir born, 1841 +02/26 Dominique Francois Jean Arago born, 1786; + observed "Poisson's spot" cf June 21 +02/28 Michel de Mantaigne born, 1533 +02/29 Herman Hollerith born, 1860 +03/01 David Niven born, 1910 +03/02 Dr. Seuss born, 1904 +03/04 Casimir Pulaski born, 1747 +03/05 John Belushi dies in Los Angeles, 1982 +03/07 Sir John Frederick William Herschel born, 1792, astronomer +03/08 Alvan Clark born, 1804, astronomer & lens manufacturer +03/08 Howard Aiken born, 1900 +03/11 Robert Treat Paine born, 1737 +03/11 Vannevar Bush born, 1890 +03/12 Gustav Robert Kirchhoff born, 1824, physicist +03/14 Albert Einstein born, 1879 +03/14 Casey Jones born, 1864 +03/14 Giovanni Virginia Schiaparelli born, 1835, astronomer; + named Mars "canals" +03/14 Jean Baptiste Joseph Fourier born, 1768, mathematician & physicist +03/15 Andrew "Old Hickory" Jackson, 7th President of the United States, + born in Waxhaw, South Carolina, 1767 +03/15 J.J. Robert's Birthday in Liberia +03/16 George Clymer born, 1739 +03/16 James Madison, 4th President of the United States, born in King George + County, Virginia, 1751 +03/21 NetBSD project born, 1993 +03/24 Harry Houdini born, 1874 +03/26 Benjamin Thompson born, 1753, Count Rumford; physicist +03/26 David Packard died, 1996; age of 83 +03/27 Wilhelm Conrad Roentgen born, 1845, discoverer of X-rays +03/28 Pierre Simon de Laplace born, 1749, mathematician & astronomer +03/30 Francisco Jose de Goya born, 1746 +03/30 Sean O'Casey born, 1880 +03/30 Vincent Van Gogh born, 1853 +03/31 Rene Descartes born, 1596, mathematician & philosopher +04/02 Hans Christian Andersen born, 1805, fairy tale author +04/02 Pope John Paul II (Karol Wojtyla) died in Vatican, 2005 +04/03 Washington Irving born, 1783 +04/05 Thomas Hobbes born, 1588, philosopher +04/08 Buddha born, 563 BC +04/08 David Rittenhouse born, 1732, astronomer & mathematician +04/09 Edward Muybridge born, 1830, motion-picture pioneer +04/09 J. Presper Eckert born, 1919 +04/10 Commodore Matthew Calbraith Perry born, 1794 +04/10 William Booth born, 1829, founder of the Salvation Army +04/13 Thomas Jefferson, 3rd President of the United States, born Shadwell + Plantation, Albemarle County, Virginia, 1743 +04/14 Christian Huygen born, 1629, physicist & astronomer; + discovered Saturn's rings +04/15 Leonardo da Vinci born, 1452 +04/16 Charles (Charlie) Chaplin (Sir) born in London, 1889 +04/22 Kant born, 1724 +04/27 Louis Victor de Broglie born, 1774, physicist +04/28 James Monroe, 5th President of the United States, born in Westmoreland + County, Viriginia, 1758 +04/29 Jules Henri Poincare born, 1854, founder of topology +04/29 William Randolph Hearst born in San Francisco, 1863 +04/30 Karl Friedrich Gauss born, 1777, mathematician & astronomer +05/01 Little Walter (Marion Walter Jacobs) is born in Alexandria, + Louisiana, 1930 +05/02 Dr. Benjamin Spock born, 1903 +05/04 Alice Liddell born, 1852, Alice's Adventures in Wonderland + & Through the Looking-Glass +05/09 Pinza died, 1957 +05/10 Fred Astaire (Frederick Austerlitz) born in Omaha, Nebraska, 1899 +05/11 Johnny Appleseed born, 1768 +05/12 Florence Nightingale born in Florence, Italy, 1820 +05/13 Arthur S. Sullivan born, 1842 +05/15 Mike Oldfield is born in Essex, England, 1953 +05/18 Pope John Paul II (Karol Wojtyla) born in Wadowice, Poland, 1920 +05/19 Ho Chi Minh born, 1890 +05/21 Plato (Aristocles) born in Athens(?), 427BC +05/27 Hubert H. Humphrey born, 1911 +05/28 Dionne quintuplets born, 1934 +05/29 Gilbert Keith Chesterton born, 1874 +05/29 John Fitzgerald Kennedy, 35th President of the United States, born in + Brookline, Massachusetts, 1917 +05/29 Patrick Henry born, 1736 +05/30 Mel (Melvin Jerome) Blanc born in San Francisco, 1908 +06/01 Brigham Young born, 1801 +06/01 Marilyn Monroe born, 1928 +06/02 Edward Elgar (Sir) born in Worcester, England, 1857 +06/03 Henry James born, 1811 +06/07 (Eugene Henri) Paul Gaugin born, 1848 +06/07 George Bryan "Beau" Brummel born, 1778 +06/07 Alan Mathison Turing died, 1954 +06/08 Frank Lloyd Wright born in Richland Center, Wisconsin, 1867 +06/13 Alexander the Great dies (323BC) +06/15 Edward (Edvard Hagerup) Grieg born in Bergen, Norway, 1843 +06/16 Hammurabi the Great dies, Babylon, 1686 BC +06/18 M.C. Escher born, 1898 +06/19 FreeBSD project born, 1993 +06/22 Carl Hubbell born, 1903 +06/22 Meryl Streep born in Summit, New Jersey, 1949 +06/22 Konrad Zuse born in Berlin, 1919 +06/23 Alan Mathison Turing born, 1912 +06/25 Eric Arthur Blair (a.k.a. George Orwell) born, 1903 +06/27 Helen Keller born, 1880 +07/03 Franz Kafka born, 1883 +07/04 Nathaniel Hawthorne born in Salem, Massachusetts, 1804 +07/04 John Adams and Thomas Jefferson die on same day, 1826 +07/06 (Helen) Beatrix Potter born, 1866 +07/06 John Paul Jones born, 1747 +07/07 P.T. Barnum dies, 1891 +07/08 Count Ferdinand von Zeppelin born, 1838 +07/10 John Calvin born, 1509 +07/11 John Quincy Adams, 6th President of the United States, born in + Braintree, Massachusetts, 1767 +07/12 Henry David Thoreau born, 1817 +07/15 Clement Clarke Moore born, 1779, author of "A Visit from + Saint Nicholas" +07/18 Brian Auger is born in London, 1939 +07/25 Steve Goodman is born in Chicago, 1948 +07/29 Mussolini born, 1883 +07/30 Emily Bronte born, 1818 +07/30 Henry Ford born, 1863 +08/01 Herman Melville born, 1819 +08/03 Lenny Bruce dies of a morphine overdose, 1966 +08/06 Jonathan B. Postel is born in Altadena, California, 1943 +08/08 Dustin Hoffman born in Los Angeles, 1937 +08/12 Thomas Mann's Death, 1955 +08/13 Alfred Hitchcock born, 1899 +08/13 Annie Oakley born, 1860 +08/13 Fidel Castro born, 1927 +08/17 Mae West born, 1892 +08/18 Meriwether Lewis born, 1774 +08/20 Leon Trotsky assassinated, 1940 +08/21 Christopher Robin Milne born, 1920 +08/21 Winnie-the-Pooh (Edward Bear) born (given to Christopher Robin + Milne), 1921 +08/23 Gene Kelly born, 1912 +08/27 Lyndon B. Johnson born, 1908 +08/29 Oliver Wendell Holmes born, 1809, physician & father of the jurist +08/30 John W. Mauchly born, 1907 +09/05 King Louis XIV of France born, 1638 +09/05 Raquel Welch born, 1942 +09/06 Word is received that Perry has reached the North Pole and died, 1909 +09/07 James Fenimore Cooper born in Burlington, NJ, 1789 +09/07 Queen Elizabeth I of England born, 1533 +09/08 Richard ``the Lionheart'', king of England born in Oxford, 1157 +09/08 Peter Sellers born in Southsea, England, 1925 +09/09 Chinese Communist Party Chairman Mao Tse-Tung dies at age 82, 1976 +09/09 Dennis Ritchie born, 1941 +09/12 Jesse Owens born, 1913 +09/13 Walter Reed born, 1851 +09/15 Agatha Christie born in Torquay, England, 1890 +09/16 Allen Funt born in Brooklyn, NY, 1914 +09/18 Greta Garbo born, 1905 +09/18 Jimi Hendrix dies from an overdose, 1970 +09/20 Upton (Beall) Sinclair born, 1878 +09/21 H.G. (Herbert George) Wells born in Bromley, England, 1866 +09/21 Louis Joliet born, 1645 +09/22 President Garfield dies of wounds in Baltimore, 1881 +09/23 Augustus (Gaius Octavius) Caesar born in Rome, 63 BC +09/23 Euripides born in Salamis, Greece, 480 BC +09/24 F. Scott Fitzgerald born, 1896 +09/26 Johnny Appleseed born, 1774 +09/26 T.S. (Thomas Stearns) Eliot born in St. Louis, 1888 +09/27 Thomas Nast born, 1840 +09/28 Michelangelo Buonarroti born in Caprese, Italy, 1573 +09/28 Pompey (Gnaeus Pompeius Magnus) born in Rome, 106BC +09/28 Seymour Cray born, 1925 +09/29 Gene Autry born, 1907 +10/01 Jimmy Carter, 39th President of United States, born in Plains, Georgia, + 1924 +10/02 Aristotle dies of indigestion, 322 BC +10/02 Mohandas K. Gandhi born at Porbandar, Kathiawad, India, 1869 +10/04 John V. Atanasoff born, 1903 +10/05 Ray Kroc (founder of McDonald's) born, 1902 +10/13 Lenny Bruce is born in New York City, 1925 +10/13 Virgil (Publius Vergilius Maro) born near Mantua, Italy, 70 BC +10/14 Dwight David Eisenhower, 34th President of the United States, born in + Denison, Texas, 1890 +10/14 William Penn born in London, 1644 +10/15 Pelham Grenville Wodehouse born, 1881 +10/16 Noah Webster born, 1758 +10/16 Oscar (Fingal O'Flahertie Wills) Wilde born in Dublin, 1854 +10/16 Dr. Jonathan B. Postel dies at age 55, 1998 +10/17 Richard Mentor Johnson born, 1780, 9th V.P. of U.S. +10/21 Alfred Nobel born in Stockholm, 1833 +10/25 Pablo Picasso born in Malaga, Spain, 1881 +10/27 James Cook is born, 1728 +10/27 Theodore (Teddy) Roosevelt, 26th President of the United States, born + New York, New York, 1858 +10/27 Gerald M. Weinberg born, 1933 +10/30 John Adams, 2nd President of the United States, born Quincy, + Massachusetts 1735. +10/31 Chiang Kai-Shek born, 1887 +10/31 Dale Evans born, 1912 +11/02 Daniel Boone born near Reading, PA, 1734 +11/04 King William III of Orange born, 1650 +11/05 Roy Rogers born, 1912 +11/09 Carl Sagan born, 1934 +11/10 Martin Luther born in Eisleben, Germany, 1483 +11/10 Soviet President Leonid Brezhnev dies at age 75, 1982 +11/11 Kurt Vonnegut, Jr, born in Indianapolis, 1922 +11/13 Robert Louis Stevenson born, 1850 +11/13 St. Augustine of Hippo born in Numidia, Algeria, 354 +11/18 Imogene Coca born, 1908 +11/18 William S. Gilbert born, 1836 +11/20 Robert Francis Kennedy (RFK) born in Boston, Massachusetts, 1925 +11/26 Charles Schulz born in Minneapolis, 1922 +11/26 Norbert Wiener born in Columbia, Missouri, 1894 +11/29 John Mayall is born in Cheshire, England, 1933 +11/30 Cleopatra died, 30 BC +11/30 Mark Twain (Samuel Clemmens) born in Florida, Missouri, 1835 +12/01 Woody Allen (Allen Stuart Konigsberg) born in Brooklyn, NY, 1935 +12/04 Tommy Bolin dies of a heroin overdose in Miami, 1976 +12/05 Martin Van Buren, 8th President of the United States, born in + Kinderhook, New York, 1837 +12/05 Walt (Walter Elias) Disney born in Chicago, 1901 +12/08 Horace (Quintus Horatius Flaccus) born in Venosa (Italy), 65BC +12/08 James (Grover) Thurber born in Columbus, Ohio, 1894 +12/10 Emily Dickenson born, 1830 +12/12 E.G. Robinson born, 1893 +12/14 George Washington dies, 1799 +12/17 William Safire (Safir) born, 1929 +12/18 Konrad Zuse died in Hünfeld, 1995 +12/20 Carl Sagan died, 1996 +12/21 Benjamin Disraeli born, 1804 +12/22 Giacomo Puccini born, 1858 +12/23 Joseph Smith born, 1805 +12/25 Isaac Newton (Sir) born in Grantham, England, 1642 +12/26 Chas. Babbage born, 1791 +12/28 John von Neumann born, 1903 + +#endif /* !_calendar_birthday_ */ diff --git a/misc_cmds/calendar/calendars/calendar.christian b/misc_cmds/calendar/calendars/calendar.christian new file mode 100644 index 0000000..b04b411 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.christian @@ -0,0 +1,32 @@ +/* + * Christian + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.christian,v 1.10 2006/12/29 06:36:32 ru Exp $ + */ + +#ifndef _calendar_christian_ +#define _calendar_christian_ + +01/05 Last (twelfth) day of Christmastide +01/06 Epiphany +Easter-47 Shrove Tuesday / Mardi Gras (day before Ash Wednesday) +Easter-46 Ash Wednesday (First day of Lent) +Easter-7 Palm Sunday (7 days before Easter) +Easter-3 Maundy Thursday (3 days before Easter) +Easter-2 Good Friday (2 days before Easter) +Easter Easter Sunday +Easter+39 Ascension Day (10 days before Pentecost) +Easter+49 Pentecost (Whitsunday) +Easter+50 Whitmonday +Easter+56 Trinity Sunday (7 days after Pentecost) +Easter+60 Corpus Christi (11 days after Pentecost) +05/28* Rogation Sunday +10/18 Feast Day of St. Luke +11/SunLast First Sunday of Advent (4th Sunday before Christmas) +12/SunFirst First Sunday of Advent (4th Sunday before Christmas) +12/06 St. Nicholas' Day +12/24 Christmas eve +12/25 Christmastide begins: First day of Christmas +12/26 Second day of Christmas (Boxing Day) + +#endif /* !_calendar_christian_ */ diff --git a/misc_cmds/calendar/calendars/calendar.computer b/misc_cmds/calendar/calendars/calendar.computer new file mode 100644 index 0000000..6a4e9f0 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.computer @@ -0,0 +1,76 @@ +/* + * Computer + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.computer,v 1.11 2007/09/07 03:23:06 edwin Exp $ + */ + +#ifndef _calendar_computer_ +#define _calendar_computer_ + +01/01 AT&T officially divests its local Bell companies, 1984 +01/01 The Epoch (Time 0 for UNIX systems, Midnight GMT, 1970) +01/03 Apple Computer founded, 1977 +01/08 American Telephone and Telegraph loses antitrust case, 1982 +01/08 Herman Hollerith patents first data processing computer, 1889 +01/08 Justice Dept. drops IBM suit, 1982 +01/10 First CDC 1604 delivered to Navy, 1960 +01/16 Set uid bit patent issued, to Dennis Ritchie, 1979 +01/17 Justice Dept. begins IBM anti-trust suit, 1969 (drops it, January 8, 1982) +01/24 DG Nova introduced, 1969 +01/25 First U.S. meeting of ALGOL definition committee, 1958 +01/26 EDVAC demonstrated, 1952 +01/31 Hewlett-Packard founded, 1939 +02/11 Last day of JOSS service at RAND Corp., 1966 +02/14 First micro-on-a-chip patented (TI), 1978 +02/15 ENIAC demonstrated, 1946 +03/01 First NPL (later PL/I) report published, 1964 +03/04 First Cray-1 shipped to Los Alamos +03/09 "GOTO considered harmful" (E.J. Dijkstra) published in CACM, 1968 +03/14 LISP introduced, 1960 +03/28 DEC announces PDP-11, 1970 +03/31 Eckert-Mauchly Computer Corp. founded, Phila, 1946 +04/01 Yourdon, Inc. founded, 1974 (It figures.) +04/03 IBM 701 introduced, 1953 +04/04 Tandy Corp. acquires Radio Shack, 1963 (9 stores) +04/07 IBM announces System/360, 1964 +04/09 ENIAC Project begun, 1943 +04/28 Zilog Z-80 introduced, 1976 +05/06 EDSAC demonstrated, 1949 +05/01 First BASIC program run at Dartmouth, 1964 +05/16 First report on SNOBOL distributed (within BTL), 1963 +05/19 UNIX is 10000 days old, 1997 +05/21 DEC announces PDP-8, 1965 +05/22 Ethernet first described, 1973 +05/27 First joint meeting of U.S. and European ALGOL definition cte., 1958 +05/28 First meeting of COBOL definition cte. (eventually CODASYL), 1959 +05/30 Colossus Mark II, 1944 +06/02 First issue of Computerworld, 1967 +06/07 Alan Mathison Turing died, 1954 +06/10 First Apple II shipped, 1977 +06/15 UNIVAC I delivered to the Census Bureau, 1951 +06/16 First publicized programming error at Census Bureau, 1951 +06/23 IBM unbundles software, 1969 +06/23 Alan Mathison Turing born, 1912 +06/30 First advanced degree on computer related topic: to H. Karamanian, + Temple Univ., Phila, 1948, for symbolic differentiation on the ENIAC +07/08 Bell Telephone Co. formed (predecessor of AT&T), 1877 +07/08 CDC incorporated, 1957 +07/FriLast System Administrator Appreciation Day +08/14 First Unix-based mallet created, 1954 +08/14 IBM PC announced, 1981 +08/22 CDC 6600 introduced, 1963 +08/23 DEC founded, 1957 +09/15 ACM founded, 1947 +09/20 Harlan Herrick runs first FORTRAN program, 1954 +10/02 First robotics-based CAM, 1939 +10/06 First GPSS manual published, 1961 +10/08 First VisiCalc prototype, 1978 +10/12 Univac gives contract for SIMULA compiler to Nygaard and Dahl, 1962 +10/14 British Computer Society founded, 1957 +10/15 First FORTRAN Programmer's Reference Manual published, 1956 +10/20 Zurich ALGOL report published, 1958 +10/25 DEC announces VAX-11/780 +11/04 UNIVAC I program predicts Eisenhower victory based on 7% of votes, 1952 +12/08 First Ph.D. awarded by Computer Science Dept, Univ. of Penna, 1965 + +#endif /* !_calendar_computer_ */ diff --git a/misc_cmds/calendar/calendars/calendar.croatian b/misc_cmds/calendar/calendars/calendar.croatian new file mode 100644 index 0000000..61d7493 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.croatian @@ -0,0 +1,12 @@ +/* + * Croatian calendar files + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.croatian,v 1.5 2001/06/11 04:24:43 ache Exp $ + */ + +#ifndef _calendar_croatian_ +#define _calendar_croatian_ + +#include + +#endif /* !_calendar_croatian_ */ diff --git a/misc_cmds/calendar/calendars/calendar.dutch b/misc_cmds/calendar/calendars/calendar.dutch new file mode 100644 index 0000000..1ce5562 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.dutch @@ -0,0 +1,78 @@ +/* + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.dutch,v 1.4 2008/02/18 07:09:17 edwin Exp $ + * + * Originally submitted by Edwin Groothuis + */ + +LANG=nl_NL.ISO8859-15 + +/* + * Feestdagen + */ +01/01 Nieuwjaar +01/06 Driekoningen +04/01 Een April +04/30 Koninginendag +05/01 Dag van de Arbeid +05/04 Dodenherdenking +05/05 Bevrijdingsdag +10/04 Dierendag +11/01 Allerheilingen +11/02 Allerzielen +11/11 Sint Maarten +11/11 Elfde-van-de-elfde +12/05 Sinterklaas avond +12/15 Koninkrijksdag +12/24 Kerstavond +12/25 Eerste kerstdag +12/26 Tweede kerstdag +12/28 Feest der Onnozele Kinderen +12/31 Oudjaar + +/* + * Pasen gerelateerd + */ +Easter-50 Carnaval +Easter-49 Carnaval +Easter-48 Carnaval +Easter-47 Carnaval (Vastenavond) +Easter-46 Aswoensdag +Easter-7 Palmzondag +Easter-3 Witte Donderdag +Easter-2 Goede vrijdag +Easter-1 Stille zaterdag +Easter Eerste paasdag +Easter+1 Tweede paasdag +Easter+39 Hemelvaartsdag +Easter+49 Eerste Pinksterdag +Easter+50 Tweede Pinksterdag +Easter+56 Trinitatis + +/* + * Misc + */ +05/SunSecond Moederdag +06/SunThird Vaderdag +09/TueThird Prinsjesdag + +/* + * Het koningshuis + */ +01/19 Prinses Margriet (1943) +01/31 Koningin Beatrix (1938) +02/17 Prins Willem III (1817 - 1890) +02/18 Prinses Christina (1947) +04/10 Prinses Ariane (2007) +04/19 Prins Hendrik (1876 - 1934) +04/27 Kroonprins Willem Alexander (1967) +04/30 Koningin Juliana (1909 - 2004) +04/30 Mr. Pieter van Vollenhoven (1939) +05/17 Prinses Maxima (1971) +06/26 Prinses Alexia (2005) +06/29 Prins Bernhard (1911 - 2004) +08/05 Prinses Irene (1939) +08/31 Prinses Wilhelmina (1880 - 1962) +09/06 Prins Claus (1925 - 2002) +09/25 Prins Johan Friso (1968) +10/11 Prins Constantijn (1969) +12/07 Prinses Catharina-Amalia (2003) diff --git a/misc_cmds/calendar/calendars/calendar.freebsd b/misc_cmds/calendar/calendars/calendar.freebsd new file mode 100644 index 0000000..2cda19b --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.freebsd @@ -0,0 +1,283 @@ +/* + * FreeBSD + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.freebsd,v 1.224 2008/02/05 19:34:54 antoine Exp $ + */ + +#ifndef _calendar_freebsd_ +#define _calendar_freebsd_ + +01/01 Alexander Langer born in Duesseldorf, Nordrhein-Westfalen, Germany, 1981 +01/02 Ion-Mihai "IOnut" Tetcu born in Bucharest, Romania, 1980 +01/02 Patrick Li born in Beijing, People's Republic of China, 1985 +01/03 Tetsurou Okazaki born in Mobara, Chiba, Japan, 1972 +01/04 Hiroyuki Hanai born in Kagawa pre., Japan, 1969 +01/08 Michael L. Hostbaek born in Copenhagen, Denmark, 1977 +01/10 Jean-Yves Lefort born in Charleroi, Belgium, 1980 +01/12 Yen-Ming Lee born in Taipei, Taiwan, Republic of China, 1977 +01/12 Ying-Chieh Liao born in Taipei, Taiwan, Republic of China, 1979 +01/16 Ariff Abdullah born in Kuala Lumpur, Malaysia, 1978 +01/16 Dmitry Sivachenko born in Moscow, USSR, 1978 +01/16 Vanilla I. Shu born in Taipei, Taiwan, Republic of China, 1978 +01/18 Dejan Lesjak born in Ljubljana, Slovenia, Yugoslavia, 1977 +01/19 Marshall Kirk McKusick born in Wilmington, Delaware, United States, 1954 +01/19 Marcelo S. Araujo born in Joinville, Santa Catarina, Brazil, 1981 +01/19 Ruslan Ermilov born in Simferopol, USSR, 1974 +01/20 Poul-Henning Kamp born in Korsoer, Denmark, 1966 +01/22 Johann Visagie born in Cape Town, South Africa, 1970 +01/23 Hideyuki KURASHINA born in Niigata, Japan, 1982 +01/24 Matteo Riondato born in Padova, Italy, 1986 +01/25 Bernd Walter born in Moers, Nordrhein-Westfalen, Germany, 1974 +01/26 Andrew Gallatin born in Buffalo, New York, United States, 1970 +01/27 Nick Sayer born in San Diego, California, United States, 1968 +01/27 Jacques Anthony Vidrine born in Baton Rouge, Louisiana, United States, 1971 +01/31 Hidetoshi Shimokawa born in Yokohama, Kanagawa, Japan, 1970 +02/01 Nicola Vitale born in Busto Arsizio, Varese, Italy, 1976 +02/01 Paul Saab born in Champaign-Urbana, Illinois, United States, 1978 +02/01 Martin Wilke born in Ludwigsfelde, Brandenburg, Germany, 1980 +02/01 Christian Brueffer born in Gronau, Nordrhein-Westfalen, Germany, 1982 +02/01 Juli Mallett born in Washington, Pennsylvania, United States, 1985 +02/02 Diomidis D. Spinellis born in Athens, Greece, 1967 +02/02 Yoichi Nakayama born in Tsu, Mie, Japan, 1976 +02/05 Frank Laszlo born in Howell, Michigan, United States, 1983 +02/10 David Greenman born in Portland, Oregon, United States, 1968 +02/10 Paul Richards born in Ammanford, Carmarthenshire, United Kingdom, 1968 +02/10 Simon Barner born in Rosenheim, Bayern, Germany, 1980 +02/13 Jesper Skriver born in Aarhus, Denmark, 1975 +02/13 Andrey Slusar born in Odessa, USSR, 1979 +02/13 David W. Chapman Jr. born in Bethel, Connecticut, United States, 1981 +02/14 Erwin Lansing born in 's-Hertogenbosch, the Netherlands, 1975 +02/14 Martin Blapp born in Olten, Switzerland, 1976 +02/19 Murray Stokely born in Jacksonville, Florida, United States, 1979 +02/20 Anders Nordby born in Oslo, Norway, 1976 +02/21 Alexey Zelkin born in Simferopol, Ukraine, 1978 +02/22 Brooks Davis born in Longview, Washington, United States, 1976 +02/22 Jake Burkholder born in Maynooth, Ontario, Canada, 1979 +02/23 Peter Wemm born in Perth, Western Australia, Australia, 1971 +02/23 Mathieu Arnold born in Champigny sur Marne, Val de Marne, France, 1978 +02/24 Johan Karlsson born in Mariannelund, Sweden, 1974 +02/24 Colin Percival born in Burnaby, Canada, 1981 +02/28 Daichi GOTO born in Shimizu Suntou, Shizuoka, Japan, 1980 +03/01 Hye-Shik Chang born in Daejeon, Republic of Korea, 1980 +03/02 Cy Schubert born in Edmonton, Alberta, Canada, 1956 +03/03 Sergey Matveychuk born in Moscow, Russian Federation, 1973 +03/03 Doug White born in Eugene, Oregon, United States, 1977 +03/03 Gordon Tetlow born in Reno, Nevada, United States, 1978 +03/05 Philip Paeps born in Leuven, Belgium, 1983 +03/05 Ulf Lilleengen born in Hamar, Norway, 1985 +03/06 Christopher Piazza born in Kamloops, British Columbia, Canada, 1981 +03/07 Michael P. Pritchard born in Los Angeles, California, United States, 1964 +03/07 Giorgos Keramidas born in Athens, Greece, 1976 +03/10 Andreas Klemm born in Duesseldorf, Nordrhein-Westfalen, Germany, 1963 +03/11 Soeren Straarup born in Andst, Denmark, 1978 +03/12 Greg Lewis born in Adelaide, South Australia, Australia, 1969 +03/13 Alexander Leidinger born in Neunkirchen, Saarland, Germany, 1976 +03/13 Will Andrews born in Pontiac, Michigan, United States, 1982 +03/15 Paolo Pisati born in Lodi, Italy, 1977 +03/15 Brian Fundakowski Feldman born in Alexandria, Virginia, United States, 1983 +03/17 Michael Smith born in Bankstown, New South Wales, Australia, 1971 +03/18 Koop Mast born in Dokkum, the Netherlands, 1981 +03/19 Mikhail Teterin born in Kyiv, Ukraine, 1972 +03/20 MANTANI Nobutaka born in Hiroshima, Japan, 1978 +03/20 Cameron Grant died in Hemel Hempstead, United Kingdom, 2005 +03/20 Henrik Brix Andersen born in Aarhus, Denmark, 1978 +03/22 Brad Davis born in Farmington, New Mexico, United States, 1983 +03/23 Daniel C. Sobral born in Brasilia, Distrito Federal, Brazil, 1971 +03/23 Benno Rice born in Adelaide, South Australia, Australia, 1977 +03/24 Marcel Moolenaar born in Hilversum, the Netherlands, 1968 +03/24 Emanuel Haupt born in Zurich, Switzerland, 1979 +03/25 Andrew R. Reiter born in Springfield, Massachusetts, United States, 1980 +03/27 Josef El-Rayes born in Linz, Austria, 1982 +03/28 Sean C. Farley born in Indianapolis, Indiana, United States, 1970 +03/29 Thierry Thomas born in Luxeuil les Bains, France, 1961 +04/01 Matthew Jacob born in San Francisco, California, United States, 1958 +04/01 Bill Fenner born in Bellefonte, Pennsylvania, United States, 1971 +04/01 Peter Edwards born in Dublin, Ireland, 1973 +04/03 Hellmuth Michaelis born in Kiel, Schleswig-Holstein, Germany, 1958 +04/03 Tong Liu born in Beijing, People's Republic of China, 1981 +04/08 Jordan K. Hubbard born in Honolulu, Hawaii, United States, 1963 +04/09 Ceri Davies born in Haverfordwest, Pembrokeshire, United Kingdom, 1976 +04/11 Bruce A. Mah born in Fresno, California, United States, 1969 +04/12 Patrick Gardella born in Columbus, Ohio, United States, 1967 +04/13 Oliver Braun born in Nuremberg, Bavaria, Germany, 1972 +04/14 Crist J. Clark born in Milwaukee, Wisconsin, United States, 1970 +04/15 David Malone born in Dublin, Ireland, 1973 +04/17 Dryice Liu born in Jinan, Shandong, China, 1975 +04/22 Joerg Wunsch born in Dresden, Sachsen, Germany, 1962 +04/22 Jun Kuriyama born in Matsue, Shimane, Japan, 1973 +04/29 Adam Weinberger born in Berkeley, California, United States, 1980 +04/29 Eric Anholt born in Portland, Oregon, United States, 1983 +05/02 Wojciech A. Koszek born in Czestochowa, Poland, 1987 +05/03 Brian Dean born in Elkins, West Virginia, United States, 1966 +05/03 Robert Nicholas Maxwell Watson born in Harrow, Middlesex, United Kingdom, 1977 +05/04 Denis Peplin born in Nizhniy Novgorod, Russian Federation, 1977 +05/08 Kirill Ponomarew born in Volgograd, Russian Federation, 1977 +05/08 Sean Kelly born in Walnut Creek, California, United States, 1982 +05/09 Daniel Eischen born in Syracuse, New York, United States, 1963 +05/09 Aaron Dalton born in Boise, Idaho, United States, 1973 +05/10 Markus Brueffer born in Gronau, Nordrhein-Westfalen, Germany, 1977 +05/11 Jesus Rodriguez born in Barcelona, Spain, 1972 +05/11 Roman Kurakin born in Moscow, USSR, 1979 +05/13 Pete Fritchman born in Lansdale, Pennsylvania, United States, 1983 +05/14 Tatsumi Hosokawa born in Tokyo, Japan, 1968 +05/14 Shigeyuku Fukushima born in Osaka, Japan, 1974 +05/16 Johann Kois born in Wolfsberg, Austria, 1975 +05/16 Marcus Alves Grando born in Florianopolis, Santa Catarina, Brazil, 1979 +05/17 Thomas Abthorpe born in Port Arthur, Ontario, Canada, 1968 +05/19 Philippe Charnier born in Fontainebleau, France, 1966 +05/19 Ian Dowse born in Dublin, Ireland, 1975 +05/21 Kris Kennaway born in Winnipeg, Manitoba, Canada, 1978 +05/22 Clive Tong-I Lin born in Changhua, Taiwan, Republic of China, 1978 +05/22 Michael Bushkov born in Rostov-on-Don, Russia, 1985 +05/23 Munechika Sumikawa born in Osaka, Osaka, Japan, 1972 +05/24 Duncan McLennan Barclay born in London, Middlesex, United Kingdom, 1970 +05/24 Oliver Lehmann born in Karlsburg, Germany, 1981 +05/25 Tom Rhodes born in Ellwood City, Pennsylvania, United States, 1981 +05/26 Jim Pirzyk born in Chicago, Illinois, United States, 1968 +05/27 Ollivier Robert born in Paris, France, 1967 +05/29 Wilko Bulte born in Arnhem, the Netherlands, 1965 +05/29 Seigo Tanimura born in Kitakyushu, Fukuoka, Japan, 1976 +05/31 Ville Skytta born in Helsinki, Finland, 1974 +06/02 Jean-Marc Zucconi born in Pontarlier, France, 1954 +06/02 Alexander Botero-Lowry born in Austin, TX, USA, 1986 +06/03 CHOI Junho born in Seoul, Korea, 1974 +06/04 Julian Elischer born in Perth, Australia, 1959 +06/04 Jason Evans born in Greeley, Colorado, United States, 1973 +06/04 Thomas Moestl born in Braunschweig, Niedersachsen, Germany, 1980 +06/06 Sergei Kolobov born in Karpinsk, Russian Federation, 1972 +06/06 Alan Eldridge died in Denver, Colorado, 2003 +06/07 Benjamin Close born in Adelaide, Australia, 1978 +06/07 Jimmy Olgeni born in Milano, Italy, 1976 +06/17 Tilman Linneweh born in Weinheim, Baden-Wuertemberg, Germany, 1978 +06/18 Li-Wen Hsu born in Taipei, Taiwan, Republic of China, 1984 +06/18 Roman Bogorodskiy born in Saratov, Russian Federation, 1986 +06/19 Charlie Root born in Portland, Oregon, United States, 1993 +06/21 Niels Heinen born in Markelo, the Netherlands, 1978 +06/24 Chris Faulhaber born in Springfield, Illinois, United States, 1971 +06/26 Brian Somers born in Dundrum, Dublin, Ireland, 1967 +06/28 Mark Santcroos born in Rotterdam, the Netherlands, 1979 +06/28 Xin Li born in Beijing, People's Republic of China, 1982 +06/29 Wilfredo Sanchez Vega born in Majaguez, Puerto Rico, United States, 1972 +06/29 Daniel Harris born in Lubbock, Texas, United States, 1985 +06/29 Andrew Pantyukhin born in Moscow, Russian Federation, 1985 +06/30 Guido van Rooij born in Best, Noord-Brabant, the Netherlands, 1965 +07/01 Matthew Dillon born in San Francisco, California, United States, 1966 +07/02 Mark Christopher Ovens born in Preston, Lancashire, United Kingdom, 1958 +07/02 Vasil Venelinov Dimov born in Shumen, Bulgaria, 1982 +07/04 Motoyuki Konno born in Musashino, Tokyo, Japan, 1969 +07/04 Florent Thoumie born in Montmorency, Val d'Oise, France, 1982 +07/07 Andrew Thompson born in Lower Hutt, Wellington, New Zealand, 1979 +07/07 Maxime Henrion born in Metz, France, 1981 +07/07 George Reid born in Frimley, Hampshire, United Kingdom, 1983 +07/10 Jung-uk Kim born in Seoul, Korea, 1971 +07/10 Justin Seger born in Harvard, Massachusetts, United States, 1981 +07/10 David Schultz born in Oakland, California, United States, 1982 +07/11 Jesus R. Camou born in Hermosillo, Sonora, Mexico, 1983 +07/15 Gary Jennejohn born in Rochester, New York, United States, 1950 +07/16 Suleiman Souhlal born in Roma, Italy, 1983 +07/17 Michael Chin-Yuan Wu born in Taipei, Taiwan, Republic of China, 1980 +07/19 Masafumi NAKANE born in Okazaki, Aichi, Japan, 1972 +07/19 Simon L. Nielsen born in Copenhagen, Denmark, 1980 +07/19 Gleb Smirnoff born in Kharkov, USSR, 1981 +07/22 James Housley born in Chicago, Illinois, United States, 1965 +07/22 Jens Schweikhardt born in Waiblingen, Baden-Wuerttemberg, Germany, 1967 +07/22 Lukas Ertl born in Weissenbach/Enns, Steiermark, Austria, 1976 +07/23 Sergey A. Osokin born in Krasnogorsky, Stepnogorsk, Akmolinskaya region, Kazakhstan, 1972 +07/24 Alexander Nedotsukov born in Ulyanovsk, Russian Federation, 1974 +07/28 Jim Mock born in Bethlehem, Pennsylvania, United States, 1974 +07/28 Tom Hukins born in Manchester, United Kingdom, 1976 +07/29 Dirk Meyer born in Kassel, Hessen, Germany, 1965 +08/02 Gabor Kovesdan born in Budapest, Hungary, 1987 +08/05 Alfred Perlstein born in Brooklyn, New York, United States, 1978 +08/06 Anton Berezin born in Dnepropetrovsk, Ukraine, 1970 +08/06 John-Mark Gurney born in Detroit, Michigan, United States, 1978 +08/07 Jonathan Mini born in San Mateo, California, United States, 1979 +08/10 Peter Pentchev born in Sofia, Bulgaria, 1977 +08/12 Joe Marcus Clarke born in Lakeland, Florida, United States, 1976 +08/14 Stefan Esser born in Cologne, Nordrhein-Westfalen, Germany, 1961 +08/17 Olivier Houchard born in Nancy, France, 1980 +08/19 Pav Lucistnik born in Kutna Hora, Czech Republic, 1980 +08/19 Chin-San Huang born in Yi-Lan, Taiwan, Republic of China, 1979 +08/20 Michael Heffner born in Cleona, Pennsylvania, United States, 1981 +08/24 Mark Linimon born in Houston, Texas, United States, 1955 +08/25 Jean Milanez Melo born in Divinopolis, Minas Gerais, Brazil, 1982 +08/25 Beech Rintoul born in Oakland, California, United States, 1952 +08/26 Dima Ruban born in Nalchik, USSR, 1970 +08/26 Marc Fonvieille born in Avignon, France, 1972 +08/26 Herve Quiroz born in Aix-en-Provence, France, 1977 +08/27 Andrey Chernov born in Moscow, USSR, 1966 +08/27 Tony Finch born in London, United Kingdom, 1974 +08/27 Michael Johnson born in Morganton, North Carolina, United States, 1980 +08/28 Norikatsu Shigemura born in Fujisawa, Kanagawa, Japan, 1974 +08/29 Thomas Gellekum born in Moenchengladbach, Nordrhein-Westfalen, Germany, 1967 +08/29 Max Laier born in Karlsruhe, Germany, 1981 +09/01 Pyun YongHyeon born in Kimcheon, Korea, 1968 +09/03 Max Khon born in Novosibirsk, USSR, 1976 +09/03 Cheng-Lung Sung born in Taipei, Taiwan, Republic of China, 1977 +09/05 Mark Robert Vaughan Murray born in Harare, Mashonaland, Zimbabwe, 1961 +09/05 Adrian Harold Chadd born in Perth, Western Australia, Australia, 1979 +09/07 Tim Bishop born in Cornwall, United Kingdom, 1978 +09/08 Boris Samorodov born in Krasnodar, Russian Federation, 1963 +09/09 Yoshio Mita born in Hiroshima, Japan, 1972 +09/10 Wesley R. Peters born in Hartford, Alabama, United States, 1961 +09/12 Weongyo Jeong born in Haman, Korea, 1980 +09/12 William C. Fumerola II born in Detroit, Michigan, United States, 1981 +09/17 Maxim Bolotin born in Rostov-on-Don, Russian Federation, 1976 +09/20 Kevin Lo born in Taipei, Taiwan, Republic of China, 1972 +09/27 Neil Blakey-Milner born in Port Elizabeth, South Africa, 1978 +09/27 Renato Botelho born in Araras, Sao Paulo, Brazil, 1979 +09/28 Greg Lehey born in Melbourne, Victoria, Australia, 1948 +09/28 Alex Dupre born in Milano, Italy, 1980 +09/29 Matthew Hunt born in Johnstown, Pennsylvania, United States, 1976 +09/30 Hiten M. Pandya born in Dar-es-Salaam, Tanzania, East Africa, 1986 +10/05 Hiroki Sato born in Yamagata, Japan, 1977 +10/05 Chris Costello born in Houston, Texas, United States, 1985 +10/09 Stefan Walter born in Werne, Nordrhein-Westfalen, 1978 +10/12 Pawel Jakub Dawidek born in Radzyn Podlaski, Poland, 1980 +10/15 Maxim Konovalov born in Khabarovsk, USSR, 1973 +10/16 Remko Lodder born in Rotterdam, the Netherlands, 1983 +10/17 Maho NAKATA born in Osaka, Japan, 1974 +10/18 Sheldon Hearn born in Cape Town, Western Cape, South Africa, 1974 +10/19 Nicholas Souchu born in Suresnes, Hauts-de-Seine, France, 1972 +10/20 Joel Dahl born in Lidkoping, Sweden, 1983 +10/21 Dan Moschuk born in Halifax, Nova Scotia, Canada, 1980 +10/21 Ben Smithurst born in Sheffield, South Yorkshire, United Kingdom, 1981 +10/22 Jean-Sebastien Pedron born in Redon, Ille-et-Vilaine, France, 1980 +10/23 Mario Sergio Fujikawa Ferreira born in Brasilia, Distrito Federal, Brazil, 1976 +10/25 Eric Melville born in Los Gatos, California, United States, 1980 +10/27 Takanori Watanabe born in Numazu, Shizuoka, Japan, 1972 +11/05 M. Warner Losh born in Kansas City, Kansas, United States, 1966 +11/09 Coleman Kane born in Cincinnati, OH, United States, 1980 +11/09 Antoine Brodin born in Bagnolet, France, 1981 +11/10 Gregory Neil Shapiro born in Providence, Rhode Island, United States, 1970 +11/13 John Baldwin born in Stuart, Virginia, United States, 1977 +11/15 Lars Engels born in Hilden, Nordrhein-Westfalen, Germany, 1980 +11/16 Jose Maria Alcaide Salinas born in Madrid, Spain, 1962 +11/17 Ralf S. Engelschall born in Dachau, Bavaria, Germany, 1972 +11/18 Thomas Quinot born in Paris, France, 1977 +11/19 Konstantin Belousov born in Kiev, USSR, 1972 +11/20 Dmitry Morozovsky born in Moscow, USSR, 1968 +11/23 Josef Lawrence Karthauser born in Pembury, Kent, United Kingdom, 1972 +11/24 Andrey Zakhvatov born in Chelyabinsk, Russian Federation, 1974 +11/24 Daniel Gerzo born in Bratislava, Slovakia, 1986 +11/28 Nik Clayton born in Peterborough, United Kingdom, 1973 +11/28 Stanislav Sedov born in Chelyabinsk, USSR, 1985 +12/01 Hajimu Umemoto born in Nara, Japan, 1961 +12/01 Alexey Dokuchaev born in Magadan, USSR, 1980 +12/03 Diane Bruce born in Ottawa, Ontario, Canada, 1952 +12/06 Stefan Farfeleder born in Wien, Austria, 1980 +12/15 James FitzGibbon born in Amersham, Buckinghamshire, United Kingdom, 1974 +12/15 Timur I. Bakeyev born in Kazan, Republic of Tatarstan, USSR, 1974 +12/18 Chris Timmons born in Ellensburg, Washington, United States, 1964 +12/18 Dag-Erling Smorgrav born in Brussels, Belgium, 1977 +12/18 Semen Ustimenko born in Novosibirsk, Russian Federation, 1979 +12/21 Rong-En Fan born in Taipei, Taiwan, Republic of China, 1982 +12/22 Maxim Sobolev born in Dnepropetrovsk, Ukraine, 1976 +12/23 Sean Chittenden born in Seattle, Washington, United States, 1979 +12/23 Alejandro Pulver born in Buenos Aires, Argentina, 1989 +12/28 Soren Schmidt born in Maribo, Denmark, 1960 +12/28 Ade Lovett born in London, England, 1969 +12/28 Marius Strobl born in Cham, Bavaria, Germany, 1978 +12/31 Edwin Groothuis born in Geldrop, the Netherlands, 1970 + +#endif /* !_calendar_freebsd_ */ diff --git a/misc_cmds/calendar/calendars/calendar.french b/misc_cmds/calendar/calendars/calendar.french new file mode 100644 index 0000000..a9af6f1 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.french @@ -0,0 +1,12 @@ +/* + * French calendar file(s) + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.french,v 1.2 2002/04/29 20:57:36 dwmalone Exp $ + */ + +#ifndef _calendar_french_ +#define _calendar_french_ + +#include + +#endif /* !_calendar_french_ */ diff --git a/misc_cmds/calendar/calendars/calendar.german b/misc_cmds/calendar/calendars/calendar.german new file mode 100644 index 0000000..d84e260 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.german @@ -0,0 +1,12 @@ +/* + * German calendar file(s) + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.german,v 1.6 2001/06/11 04:24:43 ache Exp $ + */ + +#ifndef _calendar_german_ +#define _calendar_german_ + +#include + +#endif /* !_calendar_german_ */ diff --git a/misc_cmds/calendar/calendars/calendar.history b/misc_cmds/calendar/calendars/calendar.history new file mode 100644 index 0000000..e8abdb7 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.history @@ -0,0 +1,476 @@ +/* + * History + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.history,v 1.35 2006/12/29 06:39:35 ru Exp $ + */ + +#ifndef _calendar_history_ +#define _calendar_history_ + +01/01 Anniversary of the Triumph of the Revolution in Cuba +01/01 Castro expels Cuban President Batista, 1959 +01/01 Churchill delivers his "Iron Curtain" speech, 1947 +01/01 First Rose Bowl; Michigan 49 - Stanford 0, 1902 +01/04 Quadrantid meteor shower (look north) +01/05 -50 degrees F, Strawberry UT, 1913 +01/05 The FCC hears the first demonstration of FM radio, 1940 +01/05 Twelfth night +01/06 Millard Fillmore's birthday (let's party!) +01/08 Battle of New Orleans +01/09 Plough Monday +01/10 First meeting of United Nations General Assembly in London, 1946 +01/10 Thomas Paine's Common Sense published, 1776 +01/11 Anniversary of the Peoples Republic of Albania +01/11 De Hostos' Birthday in Puerto Rico +01/11 Milk delivered in bottles for first time, 1878 +01/11 Prithvi Jayanti in Nepal +01/11 Surgeon General condemned cigarettes, 1964 +01/11 The Whiskey-A-Go-Go opens on Sunset Boulevard in Los Angeles, 1963 +01/14 The first "Be-In" is held in Golden Gate Park, 1967 +01/16 Prohibition begins, 1920 +01/18 Grey whale migration, California +01/20 St. Agnes Eve (Ah, bitter chill it was...) +01/24 Eskimo Pie patented by Christian Nelson, 1922 +01/24 Gold discovered in California at Sutter's Mill, 1848 +01/26 Sydney, New South Wales settled, 1788 +01/27 Grissom, White and Chaffe burned to death in Apollo 1, 1967 +01/27 Vietnam War cease-fire signed, 1973 +01/28 First ski tow, Woodstock VT, 1914 +01/28 Space Shuttle Challenger (51-L) explodes 74 seconds after liftoff + killing Scobee, Smith, McNair, Resnick, Jarvis, Onizuka and McAuliffe, + 1986 +01/30 Mohandas Gandhi assassinated in New Delhi by Hindu fanatic, 1948 +01/30 Tet Offensive, 1968 +01/31 "Ham" the chimpanzee soars into space aboard Mercury-Redstone 2, 1961 +01/31 Explorer I launched, 1958. Van Allen Belt discovered +01/31 Irving Langmuir, 1881, invented tungsten filament lamp +02/01 First TV soap: Secret Storm, 1954 +02/01 Forces led by Khomeini take over Iran, 1979 +02/01 Space Shuttle Columbia (STS-107) disintegrates 15 minutes before landing + killing Husband, McCool, Chawla, Clark, Ramon, Brown, and Anderson, 2003 +02/04 Cybernet inaugurated, 1969 +02/04 Patricia Hearst kidnapped by Symbionese Liberation Army, 1974 +02/08 1963 Revolution Anniversary in Iraq +02/09 -51 degrees F, Vanderbilt MI, 1934 +02/12 US President Abraham Lincoln's real birthday +02/12 Santa Barbara oil leak, 1969 +02/14 Bombing of Dresden, 1945 +02/15 Chicago Seven convicted, 1970 +02/16 Nylon patented, 1937 +02/16 Stephen Decatur burns US frigate in Tripoli, 1804 +02/18 Pluto discovered by Clyde Tombaugh, Lowell Observatory, AZ, 1930 +02/19 US Marines land on Iwo Jima, 1945 +02/20 John Glenn orbits the Earth 3 times, 1962 +02/21 Battle of Verdun begins, 1916 1M casualties +02/21 First telephone directory, New Haven, Connecticut, 1878 +02/21 Malcom X shot to death in Harlem, 1965 +02/23 Lt. Calley confesses, implicates Cpt. Medina, 1971 +02/24 Impeachment proceedings against Andrew Johnson begin, 1868 +02/28 The "French Connection" drug bust occurs in Marseilles, 1972 +02/29 French and Indian raid on Deerfield MA, 1704 +03/01 Sarah Goode, Sarah Osborne, and Tituba arrested for witchcraft + in Salem, Massachusetts, 1692 +03/02 Blackthorn winds (New England) (Does anyone know what this is?) +03/04 First meeting of Congress, 1789, in N.Y.C. +03/13 "Striptease" introduced, Paris, 1894 +03/14 Teddy Roosevelt excludes Japanese laborers from continental US, 1907 +03/15 Day of the 1848 revolution in Hungary +03/15 Buzzards return to Hinckley OH +03/15 France assumes protectorate over Vietnam, 1874 +03/15 Watts, Los Angeles, riots kill two, injure 25, 1966 +03/15 Ides of March. Gaius Julius Caesar assassinated by senators, + including adoptive son Marcus Junius Brutus Caepio, 44BC +03/16 First liquid-fuel-powered rocket flight, 1926 +03/16 MyLai Massacre; 300 non-combatant villagers killed by US infantrymen +03/16 Robert Goddard launches first liquid-fueled rocket, Auburn MA, 1926 +03/17 Vanguard I launched, 1958. Earth proved pear-shaped +03/18 Aleksei Leonov performs first spacewalk, 1965 +03/19 Swallows return to Capistrano +03/20 Radio Caroline, the original British pirate radio station, sinks, 1980 +03/24 Construction of New York subway system begins, 1900 +03/25 Triangle Shirt Waist Fire, 1911 +03/26 Popeye statue unveiled, Crystal City TX Spinach Festival, 1937 +03/27 Khrushchev becomes Premier of Soviet Union, 1958 +03/28 Three Mile Island releases radioactive gas, 1979 +03/29 Swedish settled Christiana (Wilmington) DE, 1638 +03/30 Alaska purchased from Russia for $7.2 million, 1867 +03/30 Five rings around Uranus discovered, 1977 +03/30 Pencil with eraser patented, 1858 +04/01 People of superb intelligence, savoir-faire, etc. born this day. +04/04 Martin Luther King assassinated in Memphis, Tennessee, 1968 +04/04 NATO Established, 1949 +04/06 Joseph Smith founds Mormon Church, 1830 +04/07 Albert Hofmann synthesizes LSD in Switzerland, 1943 +04/07 Alewives run, Cape Cod +04/08 Matthew Flinders and Nicolas Baudin meet in Encounter Bay, 1802 +04/09 Lee surrenders to Grant at Appomattox Courthouse, 1865 +04/12 Confederate troops fire first shots of Civil War at Ft Sumter, 1861 +04/12 Space Shuttle Columbia launched, 1981 +04/12 Yuri Gagarin becomes the first man in space, 1961 +04/13 Laotian New Year (3 days) in Laos +04/14 US President Abraham Lincoln shot in Ford's Theatre by John Wilkes Booth, 1865 +04/14 Titanic hits iceberg and sinks, 1912 +04/15 US President Abraham Lincoln dies, 1865 +04/15 Ray Kroc opens first McDonalds in Des Plaines, IL, 1955 +04/17 Bay of Pigs invasion crushed by Castro forces, 1961 +04/18 Einstein's Death, 1955 +04/18 First Laundromat opens, Fort Worth Texas, 1934 +04/18 San Francisco earthquake, 1906 +04/19 Landing of the "33" in Uruguay +04/19 Warsaw Ghetto uprising, 1943 +04/20 Supreme Court unanimously rules in favor of busing, 1971 +04/21 Lyrid meteor shower +04/22 Vladimir Ilich Ulyanov, called Lenin, Russian political leader, born in Simbirsk, 1870 +04/23 Hank Aaron hits his first home run, 1954 +04/26 William Shakespeare baptized in Stratford-on-Avon, England, 1564, + birthdate unknown +04/27 Magellan killed in Philippines, 1521 +04/29 Zipper patented by Gideon Sindback, 1913 +05/01 Beltaine; Feast of the god Bel, sun god +05/03 Anti-war protest disrupts business in Washington, 1971 +05/04 Four Kent State students are shot down by the National Guard, 1970 +05/05 John Scopes arrested for teaching evolution, Dayton, TN, 1925 +05/06 Hindenburg explodes and burns upon landing at Lakehurst, NJ, 1937 +05/07 Germany surrenders after WWII, 1945 +05/08 Beginning of ostrich mating season +05/08 US institutes mining of Haiphong Harbor, 1972 +05/09 94 degrees, New York, 1979 +05/10 Germany invades Low Countries, 1940 +05/10 Nazi bookburning, 1933 +05/14 Beginning of Lewis and Clark Expedition, 1804 +05/14 Nation of Israel proclaimed, 1948 +05/15 Asylum for Inebriates founded, Binghamton NY, 1854 +05/17 24" rain in 11 hours, Pearl River, S. China, 1982 +05/17 Six SLA members killed in televised gun fight, 1974 +05/18 Battle of Las Piedras in Uruguay +05/18 Napoleon crowned Emperor, 1804 +05/21 Battle of Iquique in Chile +05/21 US explodes first hydrogen bomb, 1956 +05/22 US Civil War ends, 1865 +05/23 Israeli raid into Argentina to capture Adolf Eichmann, 1960 +05/23 Two Yetis sighted, Mt. Everest, 1953 +05/23 Federal Republic of Germany founded, 1949 +05/24 Battle of Pinchincha in Ecuador +05/25 Oral Roberts sees 900 foot tall Jesus Christ, Tulsa OK, 1980 +05/25 Successful test of the limelight in Purfleet, England, 1830 +05/26 Congress sets first immigration quotas, 1924 +05/27 Golden Gate Bridge opens, 1937 +05/29 Edmund Hillary and Tenzing Norkay climb Mt. Everest, 1953 +05/29 First food stamps issued, 1961 +05/30 US Marines sent to Nicaragua, 1912 +06/02 Native Americans "granted" citizenship, 1924 +06/04 Roquefort cheese developed, 1070 +06/05 Robert Kennedy assassinated, 1968 +06/05 US leaves the Gold Standard, 1933 +06/06 First drive-in movie, 1933 +06/06 Normandy landing, 1944 +06/10 Death of Alexander the Great, 323 B.C. +06/10 Denver police tear gas Jethro Tull and 2000 fans at Red Rocks, 1971 +06/11 Greeks seize Troy, 1184BC +06/13 Pioneer flies past Neptune, and therefore out of the Solar System +06/14 Sandpaper invented by I. Fischer, Jr., 1834 +06/15 Ben Franklin's kite experiment, 1752 +06/15 Magna Carta signed, 1215 +06/15 Series of photographs by Edward Muggeridge prove to Leland Stanford + that all the hooves of a horse are off the ground during the gallop, + 1878 +06/16 "The Blues Brothers" premieres in Chicago, 1980 +06/17 China explodes its first Hydrogen bomb, 1967 +06/17 Watergate Democratic National Committee break-in, 1972 +06/19 Julius and Ethel Rosenberg are executed in Sing-Sing prison, 1953 +06/19 Lizzie Bordon acquitted, 1893 +06/20 Victoria crowned, 1837 +06/21 Berlin airlift begins, 1948 +06/21 Sun rises over Heelstone at Stonehenge +06/22 Civil rights workers disappear in Mississippi, 1964 +06/23 Slavery abolished in England, 1772 +06/24 Senate repeals Gulf of Tonkin resolution, 1970 +06/25 Custer's Last Stand at Little Big Horn, 1876 +06/25 North Korea invades South Korea, 1950 +06/26 Battle of Gettysburg, 1863 +06/26 St. Lawrence Seaway dedicated by Eisenhower & Queen Elizabeth II, 1959 +06/26 Toothbrush invented, 1498 +06/27 100 degrees, Fort Yukon, 1915 +06/27 Bill Graham closes the Fillmore East, 1971 +06/28 Supreme Court decides in favor of Alan Bakke, 1978 +06/30 "That" explosion in Siberia, 1908 +06/30 China and Soviet Union announce split over ideology, 1960 +07/01 Battle of Gettysburg begins, 1863 +07/03 Dog days begin +07/04 Battles of Vicksburg and Gettysburg won by Union forces, 1863 +07/04 Cloudy, 76 degrees, Philadelphia PA, 1776 +07/04 New York abstains on Declaration of Independence vote, 1776 +07/04 Thoreau enters woods, 1845 +07/06 First `talkie' (talking motion picture) premiere in New York, 1928 +07/06 Lawrence of Arabia captures Aqaba, 1917 +07/07 First radio broadcast of "Dragnet", 1949 +07/07 Terrorists detonate four bombs on London public transport, 2005 +07/08 First public reading of the Declaration of Independence, 1776 +07/08 Liberty Bell cracks while being rung at funeral of John Marshall, 1835 +07/09 10-hour working day set by law, NH, 1847 +07/10 134 degrees in Death Valley, 1913 +07/12 Minimum wages established: 40 cents/hour, 1933 +07/13 Women first compete in Olympic games, 1908 +07/16 Detonation of the first atomic bomb at Alamagordo, NM, 1945 +07/17 Disneyland opens, 1955 +07/18 Ty Cobb gets 4000th base hit, 1927 +07/19 Five Massachusetts women executed for witchcraft, 1692 +07/20 Armstrong and Aldrin land on moon, 1969 +07/21 First Train Robbery, Jesse James gets $3000 near Adair, Iowa, 1873 +07/21 Vietnam divided at 17th parallel, 1954 +07/23 Ice cream cone introduced, St. Louis MO, 1904 +07/24 Scopes Monkey Trial, 1925 +07/30 "In God We Trust" made US motto, 1956 +07/31 Harry S. Truman dedicates N.Y. Int'l Airport @ Idlewild Field, 1948, + later JFK +08/01 Lughnasa; Feast of the god Lugh, a 30 day Celtic feast centers on + this day +08/03 Columbus sets sail for Cathay, 1492 +08/03 USS Nautilus crosses under north polar ice cap, 1958 +08/04 Axe murder of Andrew and Abbey Borden, 1892 +08/04 Bombing of N. Vietnam begins, 1964 +08/04 Britain declares war on Germany starting World War I, 1914 +08/06 Atomic bomb dropped on Hiroshima, 1945 +08/06 Caricom in Barbados +08/06 Cy Young pitches first game, 1890 +08/08 Montenegro declares war on Germany, 1914 +08/08 Richard Nixon resigns the US presidency, 1974 +08/08 The Great Train Robbery -- $7,368,000, 1963 +08/09 Helter Skelter... the Charles Manson murders take place, 1969 +08/09 Persia defeats Spartan King Leonidas at Thermopylae, 480 BC +08/09 US/Canada border defined in the Webster-Ashburton Treaty, 1842 +08/09 Atomic bomb dropped on Nagasaki, 1945 +08/09 Singapore secedes from Malaysia, 1965 +08/10 Chicago incorporated as a village of 300 people, 1833 +08/10 US and Panama agree to transfer the canal in the year 2000, 1977 +08/11 Dog days end +08/11 France Ends War in Indochina, 1954 +08/11 Perseid meteor shower (look north; three days) +08/12 First test flight of Space Shuttle "Enterprise" from 747, 1977 +08/12 Last US ground troops out of Vietnam, 1972 +08/13 Berlin wall erected, 1961 +08/13 Li'l Abner debut, 1934 +08/14 Social Security begins in US, 1935 +08/15 Gandhi's movement obtains independence for Pakistan and India, 1947 +08/15 Hurricane hits Plymouth Plantation, 1635 +08/16 Roller Coaster patented, 1898 +08/17 First public bath opened in N.Y., 1891 +08/18 Anti-Cigarette League of America formed +08/19 Air Force cargo plane snares payload from Discoverer 14 spy satellite, + marking start of practical military reconnaissance from space, 1960 +08/19 Gail Borden patents condensed milk, 1856 +08/22 Death of King Richard III, 1485, Last of the Plantagenets +08/22 Joe Walker sets X-15 all time altitude mark (67 miles), 1963 +08/22 St. Columbia reports seeing monster in Loch Ness, 565 +08/23 Sacco and Vanzetti executed, 1927 +08/24 "Alice's Restaurant" premieres in New York and Los Angeles, 1969 +08/24 -126.9 F at Vostok, Antarctica, 1960 +08/24 British troops burn Washington, 1814 +08/25 Gen. De Gaulle leads French forces into Paris, 1944 +08/26 19th amendment of US constitution gives women the vote, 1920 +08/27 "Tarzan of the Apes" published, 1912 +08/27 Krakatoa, Java explodes with a force of 1,300 megatons, 1883 +08/28 Martin Luther King leads over 200,000 in civil rights rally in Washington, DC, 1963 +08/29 Star in Cygnus goes nova and becomes 4th brightest in sky, 1975; + Nova Cygni 1975. +08/30 75 cents a pound tariff set on opium, 1842 +08/30 Japan Stationery Co. sells first felt-tipped pen, 1960 +08/30 St. Rose of Lima in Peru +08/30 Washington-to-Moscow hot line connected, 1963 +08/31 269 people killed after Korean Airlines 747 shot down by USSR, 1983 +08/31 Mary Anne Nichols becomes Jack the Ripper's first victim, 1888 +08/31 Non-aggression pact signed by USSR and Afghanistan, 1926 +08/31 Federation of Malaya gains independence from Great Britain, 1957 +09/01 Bobby Fischer defeats Boris Spassky in World Chess Match, 1972 +09/01 Joshua A. Norton proclaims himself 'Emperor Norton I', 1859 +09/02 Great Britain adopts Gregorian Calendar, 1752 +09/02 Japan signs unconditional surrender on US battleship `Missouri', 1945 +09/03 Richard ``the Lionheart'' crowned king of England, 1189 +09/03 Anniversary of the Founding of the Republic in San Marino +09/05 US President Kennedy orders resumption of underground nuclear tests, 1961 +09/05 The first Continental Congress was convened in Philadelphia, 1774 +09/06 149 Pilgrims set forth from England aboard the Mayflower, 1620 +09/06 First Star Trek episode (The Man Trap) aired 1966 +09/06 US President McKinley shot, 1901 +09/06 Somhlolo in Swaziland +09/08 "Star Trek" debuts on NBC (1966) +09/08 Jack the Ripper kills again, Annie Chapman is second victim, 1888 +09/08 US President Ford pardons Richard M. Nixon, 1974 +09/09 California becomes the 31st state of the USA, 1850 +09/09 United Colonies is renamed the United States, 1776 +09/10 Mountain Meadows Massacre. Mormons kill Gentile wagon train, 1857 +09/11 CIA-sponsored terrorists overthrow Chilean government, murder President Allende, 1973 +09/11 Terrorists destroy World Trade Center in New York, 2001 +09/12 German paratroopers rescue Mussolini from captivity in Rome, 1943 +09/12 Germany annexes Sudetenland, 1938 +09/13 58° C (136.4° F) measured at el Azizia, Libya, 1922 +09/13 British defeat the French at Abraham near Quebec City, 1788 +09/13 Building of Hadrian's Wall begun, 122 +09/13 Chiang Kai-Shek becomes president of China, 1943 +09/14 Benjamin Franklin is sent to France as an American minister, 1778 +09/14 Salem, Massachusetts, is founded, 1629 +09/14 The US Selective Service Act establishes the first peacetime draft, 1940 +09/15 Soviet Premier Nikita Khrushchev begins his 13 day tour of the US, 1959 +09/15 The US Foreign Affairs Dept. becomes the US State Department, 1789 +09/16 The village of Shawmut, Massachusetts, becomes the city of Boston, 1630 +09/16 Malaya, Sabah, Sarawak and Singapore unite to become Malaysia, 1963 +09/17 Battle of Antietam, 1862 +09/18 Victory of Uprona in Burundi +09/19 New Zealand women get the right to vote, 1893 +09/20 Equal Rights Party nominates Belva Lockwood for US President, 1884 +09/20 First meeting of the American Association for the Advancement of + Science, 1848 +09/20 First meeting of the US National Research Council, 1916 +09/20 Magellan leaves Spain on the first Round the World passage, 1519 +09/20 The Roxy Theater opens in Hollywood, 1973 +09/22 US President Lincoln issues the Emancipation Proclamation, 1862 +09/22 Special prosecutor Leon Jeworski subpoenas US President Nixon, 1974 +09/22 The first Soviet atomic bomb explodes, 1949 +09/23 Philippine President Ferdinand Marcos declares martial law, 1972 +09/23 The New York Knickerbockers becomes the first US Baseball club, 1845 +09/23 US Vice President Nixon denies campaign fund fraud with his "Checkers" speech, 1952 +09/25 Sandra Day O'Connor becomes first woman on US Supreme Court, 1981 +09/27 The first passenger was hauled in a locomotive in England, 1825 +09/28 "Pilgrim's Progress" published, 1678 +09/28 A Greek soldier runs 26+ miles after the Persian defeat at Marathon, + 490BC +09/30 Red Jack kills 2, Elizabeth Stride (#3) and Catherine Eddowes (#4), + 1888 +09/30 The first tooth is extracted under anesthesia in Charleston, Mass, 1846 +09/30 The verdicts of the Nuremberg trials are announced, 1946 +10/01 NASA officially begins operations, 1958 +10/02 Thurgood Marshall sworn as the first black Supreme Court Justice, 1967 +10/04 Crimean war begins, 1853 +10/04 First space vehicle, Sputnik I, launched, 1957 +10/06 Antioch College is the first public school to admit men and women, 1853 +10/06 Egyptian President Anwar es-Sadat is assassinated in Cairo, 1981 +10/06 Israel is attacked by the alliance of Egypt and Syria, 1973 +10/07 Foundation of the German Democratic Republic (GDR or DDR), 1949 +10/07 Georgia Tech. beats Cumberland Univ. 222-0, 1916 +10/07 Maryland Governor Marvin Mandel sent to prison on fraud charges, 1977 +10/07 Mother Teresa of Calcutta awarded the Nobel Peace Prize, 1979 +10/07 Police stop Wilbur Mills car, Fanne Fox jumps into water, 1974 +10/08 Great Chicago Fire, 1871 +10/09 First two-way telephone conversation, 1876 +10/10 Beginning of the Wars for Independence in Cuba +10/10 Foundation of the Workers Party in North Korea +10/10 Mercury at Superior Conjunction with Sun. Moves into night sky. (1984) +10/10 Spiro T. Agnew resigns as Vice-President due to income tax fraud, 1973 +10/11 "Saturday Night Live" premiers on NBC-TV, 1975 +10/11 The Gang of Four are arrested in Peking, 1976 +10/11 The first steam powered ferry ran between New York and Hoboken, 1811 +10/11 The second Vatican Ecumenical Council opens in Rome, 1962 +10/11 First broadcast of Saturday Night Live, 1975 +10/12 Bahama Natives discover Columbus of Europe lost on their shores, 1492 +10/12 Khrushchev pounds his desk with shoe during a speech to the UN, 1960 +10/12 Man O'War's last race, 1920 +10/12 Native Americans discover Columbus of Europe lost on their shores, 1492 +10/13 Italy declares war on Germany, 1943 +10/13 US Navy born, 1775, authorized by the Second Continental Congress +10/14 Battle of Hastings won by William the Conqueror and the Normans, 1066 +10/14 Chuck Yeager breaks sound barrier, 1947 +10/15 First draft card burned, 1965 +10/18 Boston Shoemakers form first US labor org., 1648 +10/18 Soviets announce their probe took photos of the Moon's far side, 1959 +10/19 Mao Tse-tung establishes the People's Republic of China, 1949 +10/19 Napoleon's beaten army begins the long retreat from Moscow, 1812 +10/20 "Saturday Night Massacre", 1973 +10/20 OPEC embargo, 1973 +10/21 Edison makes the first practical incandescent lamp, 1879 +10/21 Guggenheim Museum opens, 1959 +10/23 Battle of Leyte Gulf begins, 1944 +10/23 Day of the 1956 revolution in Hungary +10/23 Earth created at 6:30 AM, 4004BC. +10/23 Swallows leave Capistrano +10/25 The UN removes Taiwan and admits the People's Republic of China, 1971 +10/26 UN's World Health Organization declares smallpox eradicated, 1978 +10/27 New York's Boss Tweed is arrested on fraud charges, 1871 +10/27 The first New York Subway is opened, 1904 +10/28 Columbus discovers Cuba, 1492 +10/28 Constantine's army defeats forces of Maxentius at Mulvian Bridge, 312 +10/28 Harvard was founded in Massachusetts, 1636 +10/28 Statue of Liberty was dedicated on Bedloe's Island, 1886 +10/29 Stock Market Crash, 1929 +10/30 Orson Welles' "War of the Worlds" broadcast, 1938 +10/31 Luther nails 95 Theses to door of Castle Church, Wittenberg, 1517 +11/01 Austria-Hungary become two separate nations, 1918 +11/01 Puerto Rican nationalists try to kill Truman at the Blair House, 1950 +11/02 Luftwaffe completes 57 consecutive nights of bombing of London, 1940 +11/02 Two Frenchmen make the first free hot air balloon flight, 1783 +11/03 Beef rises to 3 cents a pound, IL, 1837 +11/03 Linus Pauling wins Nobel Chemistry Prize, 1954 +11/03 Sputnik II launched, 1957, bearing space dog Laika +11/04 Iranian militants seize US embassy personnel in Teheran, 1979 +11/04 Soviet forces crush the anti-communist revolt in Hungary, 1956 +11/05 Guy Fawkes' Plot, 1605 +11/07 Abolitionist newspaperman Elijah P. Lovejoy murdered by mob, 1837 +11/07 Lewis and Clark Expedition in sight of the Pacific Ocean, 1805 +11/09 Blackout of New York, New England, and Eastern Canada, 1965 +11/09 Giant panda discovered (?!), China, 1927 +11/09 Jack the Ripper kills fifth and final victim, Jane Kelly, 1888 +11/09 Margaret Sanger forms American Birth Control League, 1921 +11/09 Roosevelt establishes the Civil Works Administration, 1933 +11/10 41 Women arrested in suffragette demonstrations near White House, 1917 +11/10 Cpt. Wirz, commandant of Andersonville Prison hanged, 1865 +11/10 Henry Stanley asks David Livingston, "Dr. Livingston, I presume?", 1871 +11/11 Washington becomes the 42nd state, 1889 +11/12 Dr. Sun Yat-sen's Birthday in Taiwan +11/12 USA first exports oil to Europe, 1861 +11/14 Quarter Pounder price raised from $0.53 to $0.55 in violation of Nixon + price controls (but okayed by Price Commission after formal request + from McDonald's), 1971 +11/15 Niagara Falls power plant startup, 1896 +11/16 Opening of the Suez Canal, 1869 +11/17 46,000 meteoroids fall over AZ in 20 minutes, 1966 +11/17 Richard Nixon says "I am not a crook.", 1973 +11/18 First hydrogen bomb blasts Enewetok, 1952 +11/18 Local standard time zones established for US, 1883 +11/19 Gettysburg Address delivered, 1863 +11/21 Announcement of 18 1/2 minute gap on Watergate tape, 1973 +11/22 Kennedy shot in Dallas, Texas by Lee Harvey Oswald, 1963 +11/23 First broadcast of Dr. Who (longest running TV series), 1963 +11/24 Lee Harvey Oswald killed by Jack Ruby, 1963 +11/25 Alfred Nobel invents dynamite, 1867 +11/27 Alfred Nobel establishes Nobel Prize, 1895 +11/27 Friction match invented, England, 1826 +11/27 Hoosac Railroad Tunnel completed, 1873, in NW Massachusetts +11/29 King Tut's tomb opened, 1922 +12/01 First national corn-husking championship, Alleman IA, 1924 +12/01 Martin Luther King Jr., leads black boycott of Montgomery buses, 1955 +12/01 Rosa Parks refuses to move to back of the bus (Montgomery, AL), 1953 +12/03 First neon light display, Paris, 1910 +12/03 First successful human heart transplant led by Dr. Barnard, 1967 +12/03 The Montreux Casino burns down during a Frank Zappa concert, 1971 +12/04 Washington takes leave of his officers at Fraunce's Tavern, NYC, 1783 +12/05 End of Prohibition, 1933 (at least the alcohol part) +12/05 Phi Beta Kappa founded, 1776 +12/05 The Eighteenth Amendment repealed, ending Prohibition, 1933 +12/07 Japan bombs Pearl Harbor, 1941 +12/08 Japan enters Second World War with invasion of Pantai Sabak, Kelantan, 1941 +12/09 Ball-bearing roller skates patented, 1884 +12/10 Metric system established in France, 1799 +12/10 Nobel Peace Prize awarded each year +12/12 First wireless message sent across Atlantic by Marconi, 1901 +12/13 Apollo 17 leaves the moon, with "last" men to walk on moon aboard, 1972 +12/13 Dartmouth College chartered, 1769 +12/13 Geminid meteor shower (look south) +12/15 Argo Merchant oil spill, 1976 +12/15 Bill of Rights adopted, 1791 +12/15 James Naismith invents basketball, Canada, 1891 +12/15 Sitting Bull shot in head while submitting to arrest, 1890 +12/20 US buys ~1,000,000 sq. miles of Louisiana for ~$20/sq.mi. +12/21 Phileas Fogg completes his trip around the world in less than 80 days +12/21 Women gain the right to vote in South Australia, 1894 +12/21 Women gain the right to hold political office in South Australia, 1894 +12/24 KKK formed in Pulaski, Tenn, 1865 +12/26 DPMA founded, 1951 +12/27 APT report published, 1956 +12/27 Ether first used as anesthetic in childbirth, 1845 +12/28 Comet Kohoutek at perihelion, 1973 +12/28 Proclamation of the Province of South Australia, 1836 +12/29 Battle of Wounded knee, 1890 +12/30 First Los Angeles freeway dedicated, 1940 +12/31 St. Sylvester in Switzerland +12/31 Winterland closes its doors, 1978 + +#endif /* !_calendar_history_ */ diff --git a/misc_cmds/calendar/calendars/calendar.holiday b/misc_cmds/calendar/calendars/calendar.holiday new file mode 100644 index 0000000..f3093dd --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.holiday @@ -0,0 +1,563 @@ +/* + * Holiday + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.holiday,v 1.36 2007/09/07 03:23:06 edwin Exp $ + */ + +#ifndef _calendar_holiday_ +#define _calendar_holiday_ + +01/01 Beginning of the Year in Japan +01/01 Independence Day in Haiti and Sudan +01/01 Universal Fraternity Day in Mozambique +01/02 Ancestry Day in Haiti +01/02 St. Berchtold's Day in Switzerland +01/03 New Year's Holiday in Scotland +01/03 Revolution Day in Upper Volta +01/04 Independence Day in Burma +01/04 Martyrs Day in Zaire +01/06 Children's Day in Uruguay +01/06 Three Kings' Day in Puerto Rico +01/07 Christmas in Ethiopia +01/07 Pioneer's Day in Liberia +01/09 Day of the Martyrs in Panama +01/11 Armed Forces Day in Liberia +01/12 Zanzibar Revolution Day in Tanzania +01/13 National Liberation Day in Togo +01/15 Arbor Day in Jordan +01/16 Martyrs Day in Benin +01/18 Revolution Day in Tunisia +01/19 Confederate Heroes Day in Texas +01/19 Ethiopian Epiphany in Ethiopia +01/19 Nameday of Archbishop Makarios in Cyprus +01/20 Army Day in Mali +01/20 National Heroes Day in Guinea-Bissau +01/21 Our Lady of Altagracia in Dominican Republic +01/23 Feast of St. Ildefonsus +01/23 US National Handwriting Day +01/24 Economic Liberation Day in Togo +01/26 Republic Day in India +01/MonSecond Adults Day in Japan +01/MonThird Lee-Jackson Day in Virginia (3rd Monday) +01/MonThird Robert E. Lee's Birthday in Alabama & Mississippi (3rd Monday) +01/MonThird Martin Luther King Day in New York (3rd Monday) +02/01 Chinese New Year Holiday (3 days) in Taiwan +02/02 Candlemas +02/04 Independence Commemoration Day in Sri Lanka +02/05 Constitution Day in Mexico +02/06 New Zealand Day +02/07 Independence Day in Grenada +02/09 St. Maron's Day in Lebanon +02/10 Feast of St. Paul's Shipwreck, AD 60 +02/11 National Foundation Day in Japan +02/12 Pyidaungsa Day in Burma +02/16 Makha Bucha Day in Thailand +02/18 Democracy Day in Nepal +02/18 Independence Day in The Gambia +02/23 Republic Day in Guyana +02/24 Gregorian Calendar Day +02/25 National Day in Kuwait +02/27 Independence Day in Dominican Republic +03/01 Samil Independence Movement Day in South Korea +03/01 St. David's Day - Patron Saint of Wales +03/02 Peasants Day in Burma +03/02 Texas Independence day +03/02 Victory of Adowa in Ethiopia +03/03 Throne Day in Morocco +03/03 Independence day (Treaty of San Stefano) in Bulgaria +03/04 Vermont Admission Day (admitted as 14th US state in 1791) +03/05 Independence Day in Equatorial Guinea +03/06 Lantern Day, Bejing +03/08 First Annual International Women's Day, 1909 +03/08 International Women's Day in former USSR +03/08 Syrian National Day in Libyan Arab Republic +03/08 Women's Day in Guinea-Bissau, Taiwan and Yemen Democratic Republic +03/08 Youth Day in Zambia +03/09 Decoration Day in Liberia +03/09 Falgun Purnima Day in Nepal +03/10 Labor Day in South Korea +03/11 Johnny Appleseed Day; anniversary of the death of John Chapman +03/12 Commonwealth Day in Swaziland +03/12 Independence Day in Mauritius +03/12 Moshoeshoe's Birthday in Lesotho +03/12 Renovation Day in Gabon +03/13 National Day in Grenada +03/16 Black Press Day; first US Black newspaper founded in 1827 +03/17 Evacuation Day in Suffolk County, Massachusetts +03/17 St. Patrick's Day - one of the Patron Saints of Ireland +03/19 St. Joseph's Day, observed in Colombia, Costa Rica, Holy See, + Liechtenstein, San Marino, Spain, Venezuela +03/19 Tree Planting Day in Lestho +03/20 Independence Day in Tunisia +03/20 Youth Day in Oklahoma +03/20* Vernal Equinox in Japan +03/21 Afghan New Year in Afghanistan +03/21 Juarez' Birthday in Mexico +03/21* Vernal Equinox in Japan +03/22 Abolition Day in Puerto Rico +03/23 Pakistan Day in Pakistan +03/25 Greek Independence Day in Cyprus +03/25 Lady Day (a.k.a. the Feast of the Annunciation) +03/25 Maryland Day in Maryland +03/25 National Holiday in Greece +03/26 Independence Day in Bangladesh +03/26 Prince Jonah Kuhio Kalanianaole Day in Hawaii +03/27 Armed Forces Day in Burma +03/29 Death of President Barthelemy Boganda in Central African Republic +03/29 Memorial Day in Madagascar +03/31 National Day in Malta +03/MonLast Seward's Day in Alaska (last Monday) +04/01 Youth Day in Benin +04/02 Malvinas Day in Argentina +04/02 Pascua Florida Day in Florida +04/04 Ching Ming Festival in Hong Kong +04/04 Liberation Day in Hungary +04/04 National Day in Senegal +04/05 Arbor Day in South Korea +04/05 Tomb Sweeping Day in Taiwan +04/06 Chakri Memorial Day in Thailand +04/06 Victory Day in Ethiopia +04/08 Fast and Prayer Day in Liberia +04/09 Martyrs Day in Tunisia +04/11 National Heroes Day in Costa Rica +04/13 National Day in Chad +04/13 Songkron Day in Thailand +04/14 Day of the Americas in Honduras +04/15 Bengali New Year in Bangladesh +04/16 De Diego's Birthday celebrated in Puerto Rico +04/16 Holy Week (5 days) in Venezuela +04/16 Tourist Week (5 days) in Uruguay +04/17 Burmese New Year in Burma +04/18 Independence Day in Chile and Zimbabwe +04/19 Declaration of Independence in Venezuela +04/19 Republic Day in Sierra Leone +04/21 San Jacinto Day in Texas +04/21 Tiradentes in Brazil +04/22 Arbor Day in Nebraska & Delaware +04/22 Oklahoma Day in Oklahoma +04/23 St. George's Day - Patron Saint of England +04/24 Victory Day in Togo +04/25 Anniversary of the Revolution in Portugal +04/25 Anzac Day, observed in Australia, New Zealand, Tonga and Western Samoa +04/25 Liberation Day in Italy +04/25 National Flag Day in Swaziland +04/26 Confederate Memorial Day in Florida & Georgia +04/26 Union Day in Tanzania +04/27 Independence Day in Togo +04/29 Showa Day in Japan +04/30 Queen's Birthday in the Netherlands, the Netherlands Antilles +04/30 The Workers Day in Uruguay +04/MonLast Arbor Day in Wyoming (last Monday) +04/MonLast Confederate Memorial Day in Alabama & Mississippi (last Monday) +04/MonThird Patriot's Day in Maine & Massachusetts (3rd Monday) +05/01 Labor Day in many places in the USA +05/01 May Day in many places +05/01 US Law Day (decl. by Eisenhower) +05/02 King's Birthday in Lesotho +05/03 Constitution Memorial Day in Japan +05/04 Greenery Day in Japan +05/04 Rhode Island Independence Day +05/05 Battle of Puebla in Mexico +05/05 Children's Day in Japan and South Korea +05/05 Coronation Day in Thailand +05/05 Liberation Day in the Netherlands +05/06 Bataan Day in Philippines +05/06* Bank Holiday in UK +05/07 May Day in United Kingdom +05/08 Buddha's Birthday in South Korea +05/08 Elections for the National Assembly in Philippines +05/08 Truman Day in Missouri +05/09 VE day, end of Second World War, celebrated in many countries +05/10 Confederate Memorial Day in South Carolina +05/10 Mothers Day in Guatemala +05/11 Minnesota Day in Minnesota +05/14 Anniversary of the Founding of Guinean Democratic Party in Guinea +05/14 Buddhist Holiday (Waisak 2528) in Indonesia +05/14 Independence Day (2 days) in Paraguay +05/14 Unification Day in Liberia +05/15 Kamuzu Day in Malawi +05/15 Vesak Day, observed in Singapore and Malaysia +05/15 Visakha Bucha Day in Thailand +05/16 Discovery Day in Cayman Islands +05/17 Constitution Day in Nauru and Norway +05/18 Flag Day in Haiti +05/18 Prayer Day in Denmark +05/19 Youth and Sports Day in Turkey +05/20 Mecklenburg Independence Day in North Carolina +05/20 National Day in Cameroon +05/20 Victoria Day in Canada +05/22 National Heroes Day in Sri Lanka +05/23 Commonwealth Day in Jamaica and Belize +05/23 National Labor Day in Jamaica +05/24 Bermuda Day in Bermuda +05/24 Day of Slav Letters in Bulgaria +05/25 African Freedom Day in Zimbabwe +05/25 African Liberation Day in Chad, Mauritania and Zambia +05/25 Anniversary of the Revolution of 1810 in Argentina +05/25 Independence Day in Jordan +05/25 Memorial Day in New Mexico & Puerto Rico +05/25 Revolution in the Sudan in Libyan Arab Republic +05/27 Afghanistan attains sovereignty, 1921 +05/27* Bank Holiday in UK +05/28 Mothers Day in Central African Republic +05/31 Pya Martyrs Day in Togo +05/MonThird Memorial Day in Michigan (3rd Monday) +06/01 Independence Days (3 days) in Western Samoa +06/01 Madaraka Day in Kenya +06/01 Victory Day in Tunisia +06/02 Corpus Christi in Paraguay +06/03 Confederate Memorial Day in Kentucky & Louisiana +06/03 Labor Day in Bahamas +06/03* Bank Holiday in Rep. of Ireland +06/04 Emancipation Day in Tonga +06/04 Queen's Birthday in New Zealand +06/05 Constitution Day in Denmark +06/05 Liberation Day in Seychelles +06/06 His Majesty, Yang Di-Pertuan Agong's Birthday in Malaysia +06/06 Memorial Day in South Korea +06/09 Senior Citizen's Day in Oklahoma +06/10 Camoes Day in Portugal +06/11 King Kamehameha I Day in Hawaii +06/11 Queen's Birthday +06/12 Independence Day in Philippines +06/12 Peace with Bolivia in Paraguay +06/13 Corrective Movement in Yemen Arab Republic +06/14 Flag Day, USA +06/16 Bloomsday - Anniversary of Dublin events, 1904, in "Ulysses" +06/17 Bunker Hill Day in Suffolk County, Massachusetts +06/17 Independence Day in Iceland +06/18 Evacuation Day in Egypt +06/18 Queen's Birthday in Fiji +06/19 Artigas Birthday in Uruguay +06/19 Emancipation Day in Texas +06/19 Labor Day in Trinidad and Tobago +06/19 Revolution Day in Algeria +06/20 Flag Day in Argentina +06/20 West Virginia Day in West Virginia +06/22 Corrective Movement in Yemen Democratic Republic +06/22 Midsummer Eve in Finland, Sweden +06/22 National Sovereignty Day in Haiti +06/23 National Holiday in Luxembourg +06/24 Battle of Carabobob in Venezuela +06/24 Fisherman's Day in Madagascar, Mozambique and Somalia +06/24 Kings Day in Spain +06/24 Peasants Day in Peru +06/24 St. Jean-Baptiste Day in Quebec +06/28 Mothers Day in Central African Republic +06/29 Independence Day in Seychelles +06/30 Day of the Army in Guatemala +06/MonFirst Jefferson Davis's Birthday in Alabama & Mississippi (1st Monday) +06/MonFirst Jefferson Davis's Birthday in Florida, Georgia, & S. Carolina +07/01 Dominion Day in Canada +07/01 Freedom Day in Suriname +07/01 Independence Day in Burundi +07/01 National Day in Rwanda +07/01 Republic Day in Ghana +07/01 Union of the Somalia Republic in Somalia +07/02 National Day in Kiribati +07/04 Caribbean Day in Guyana +07/04 Constitution Day in Cayman Islands +07/04 Family Day in Lesotho +07/04 Heroes Day in Zambia +07/04 Kadooment Day in Barbados +07/04 Philippine-American Friendship Day in the Philippines +07/04 Warriors Day (2 days) in Yugoslavia +07/05 Day of Peace and Unity in Rwanda +07/05 Independence Day in Algeria and Venezuela +07/07 Anniversary of the P.U.N. in Equatorial Guinea +07/07 National Day in Malawi +07/07 Saba Saba Day in Tanzania +07/09 Independence Day in Argentina +07/10 Independence Day in Bahamas +07/11 National Holiday in the Mongolian People's Republic +07/12 Battle of Boyne celebrated in Northern Ireland +07/13 Buddhist Lent in Thailand +07/14 Anniversary of the Revolution in Iraq +07/14 French National Festival +07/14 National Holiday in Monaco +07/15 St. Swithin's Day +07/16 Presidents Day in Botswana +07/17 Constitution Day in South Korea +07/17 July Revolution in Iraq +07/17 Munoz Rivera's Birthday (celebrated in Puerto Rico) +07/17 Public Holiday in Botswana +07/18 Constitution Day in Uruguay +07/18 Liberation Day in Nicaragua +07/19 Martyrs Day in Burma +07/20 Independence Day in Colombia +07/21 National Holiday in Belgium +07/22 King's Birthday in Swaziland +07/22 National Day in Poland +07/23 Anniversary of the Revolution in Egypt +07/23 Egyptian National Day in Syrian Arab Republic +07/23 Remembrance Day in Papua New Guinea +07/24 Pioneer Day in Utah +07/24 Simon Bolivar's Day in Ecuador and Venezuela +07/25 Constitution Day in Puerto Rico +07/25 National Rebellion Day (3 days) in Cuba +07/25 Republic Day in Tunisia +07/25 St. James, Patron Saint in Spain +07/26 Independence Day in Liberia +07/26 National Day in Maldives +07/27 Barbosa's Birthday (celebrated in Puerto Rico) +07/28 Independence Days (2 days) in Peru +07/29 Olsok Eve in Norway to commemorate Norway's Viking King St. Olav +07/29 Rain Day in Waynesburg, PA +07/31 Revolution Day in Congo +07/MonThird Day of Sea in Japan +08/01 Discovery Day in Trinidad and Tobago +08/01 Emancipation Day in Granada +08/01 Founding of Asuncion in Paraguay +08/01 Freedom Day in Guyana +08/01 National Day in Switzerland +08/01 National Holidays (5 days) in El Salvador +08/01 Parent's Day in Zaire +08/02 Our Lady of Los Angeles in Costa Rica +08/03 Independence Day in Jamaica and Niger +08/03 Massacre of the Pidjiguiti in Buinea-bissau +08/03 Memorial Day of Archbishop Makarios in Cyprus +08/04 Freedom Day in Guyana +08/05* Bank Holiday in Scotland and Northern Ireland +08/06 Bank Holiday in British Columbia, Fiji, Iceland, Ireland, Ontario +08/06 Emancipation Day in Bahamas +08/06 Independence Day in Bolivia +08/07 Battle of Boyaca in Colombia +08/09 National Day in Singapore +08/10 Independence Day in Ecuador +08/11 Heroes Day (2 days) in Zimbabwe +08/11 Independence Day in Chad +08/11 King Hussein's Accession to the Throne in Jordan +08/12 Queen's Birthday in Thailand +08/13 Proclamation of Independence in Central African Republic +08/13 Women's Day in Tunisia +08/14 Independence Day in Pakistan +08/14 VJ Day, 1945 +08/14 Waddi Dhahab in Morocco +08/15 Founding of Ascuncion in Paraguay +08/15 Independence Day in India +08/15 Liberation Day in South Korea +08/15 National Day in Congo +08/15 Santa Maria in Malta +08/16 Bennington Battle Day in Vermont +08/16 Independence Days (3 days) in Gabon +08/16 Restoration Day in Dominican Republic +08/17 Anniversary of the Death of General San Martin in Argentina +08/17 Independence Day in Indonesia +08/19 Independence Day in Afghanistan +08/20 Constitution Day in Hungary +08/24 National Flag Day in Liberia +08/25 Constitution Day in Paraguay +08/25 Independence Day in Uruguay +08/26 Susan B. Anthony Day in Massachusetts +08/26* Bank Holiday in England and Wales +08/27 Liberation Day in Hong Kong +08/28 Heroes Day in Philippines +08/30 Huey P. Long Day in Louisiana +08/30 Victory Day in Turkey +08/31 Independence Day (Merdeka) in Malaysia +08/31 Independence Day in Trinidad and Tobago +08/31 Pashtoonian Day in Afghanistan +08/FriThird Admission Day in Hawaii, 1984 (3rd Friday) +09/01 Army Day in Chile +09/03 Independence Day in Qatar +09/03 Memorial Day in Tunisia +09/06 Defense of Pakistan Day in Pakistan +09/06 Unification of Bulgaria +09/07 Independence Day in Brazil +09/09 Admission Day in California +09/09 National Day in North Korea +09/10 Korean Thanksgiving Day (Chusuk) in South Korea +09/10 Moon Festival in Taiwan +09/10 National Day in Belize +09/11 Anniversary of military coup in Chile +09/11 Ethiopian New Year in Ethiopia +09/11 National Holiday in Chile +09/12 Amilcar Cabral's Birthday in Guinea-Bissau +09/12 Defender's Day in Maryland +09/12 Revolution Day in Ethiopia +09/13 Barry Day commemorates the death of Commodore John Barry, USA +09/14 Battle of San Jacinto in Nicaragua +09/15 Foundation of Panama in Panama +09/16 Cherokee Strip Day in Oklahoma +09/16 Independence Days in Mexico and Papua New Guinea +09/17 National Heroes Day in Angola +09/18 Independence Day in Chile and Zimbabwe +09/19 Army Day in Chile +09/21 Independence Day in Belize +09/22 Independence Day in Mali +09/22 National Sovereignty Day in Haiti +09/22* Autumnal Equinox in Japan +09/23 Grito de Lares in Puerto Rico +09/23* Autumnal Equinox in Japan +09/24 Anniversary of the Third Republic in Ghana +09/24 Independence Day in Guinea-Bissau +09/24 National Day in Saudi Arabia +09/24 Our Lady of Mercedes in Dominican Republic +09/24 Republic Day in Trinidad and Tobago +09/25 Army Day in Mozambique +09/25 Referendum Day in Rwanda +09/26 National Day in Maldives +09/26 Revolution Anniversary Day in Yemen +09/27 Feast of Finding the True Cross in Ethiopia +09/28 Confucius' Day in Taiwan +09/29 Michaelmas +09/29 Battle of Boqueron in Paraguay +09/30 Botswana Day in Botswana +09/MonThird Respect for the Aged Day in Japan +10/01 Armed Forces Day in South Korea +10/01 Independence Day in Nigeria +10/01 National Liberation Day (2 days) in China +10/01 Public Holiday in Botswana +10/02 Anniversary of Guinean Independence in Guinea +10/03 Chung Yeung Festival in Hong Kong +10/03 Francisco Morazan's Birthday in Honduras +10/03 German Reunification Day +10/03 National Foundation Day in South Korea +10/03 U.N. Day in Barbados +10/04 Independence Day in Lesotho +10/05 Anniversary of Proclamation of the Republic in Portugal +10/06 National Sports Day in Lesotho +10/07 National Heroes Day in Jamaica +10/08 Battle of Agamos in Peru +10/08 Constitution Day in former USSR +10/08 Thanksgiving Day in Canada +10/08* Fiji Day +10/09 Independence Day in Uganda +10/09 Independence of Guayaquil in Ecuador +10/09 Korean Alphabet Day in South Korea +10/09 Leif Erikson Day commemorates the discovery of North America in AD 1000 +10/09 Republic Day in Khmer Republic +10/10 National Day in Taiwan +10/10 Oklahoma Historical Day in Oklahoma +10/11 Day of the Revolution in Panama +10/12 Day of the Race in Argentina +10/12 Discovery Day in Bahamas +10/12 National Day in Equatorial Guinea and Spain +10/12 Our Lady Aparecida Day in Brazil +10/12 Pan American Day in Belize +10/14 National Day in Yemen Arab Republic +10/14 Young People's Day in Zaire +10/14* Thanksgiving Day in Canada +10/15 Evacuation Day in Tunisia +10/16 National Boss Day, USA +10/17 Dessaline's Death Anniversary in Haiti +10/17 Heroes Day in Jamaica +10/17 Mother's Day in Malawi +10/20 Anniversary of the 1944 Revolution in Guatemala +10/20 Kenyatta Day in Kenya +10/21 Armed Forces Day in Honduras +10/21 Revolution Days (2 days) in Somalia +10/23 Chulalongkron's Day in Thailand +10/24 Independence Day in Zambia +10/24 United Nations Day +10/25 Taiwan Restoration Day in Taiwan +10/25 St. Crispin's day, patron saint of shoemakers +10/26 Agam Day in Nauru +10/26 Armed Forces Day in Benin and Rwanda +10/26 National Day in Austria +10/28 National Holiday in Greece +10/28 OHI Day in Cyprus +10/28* Bank Holiday in Republic of Ireland +10/29 Republic Day in Turkey +10/31 All Hallows Eve ("Halloween") +10/31 Nevada Day in Nevada +10/MonFourth Labour Day in New Zealand +10/MonSecond Health Sports Day in Japan +11/01 All Saints Day +11/01 Samhain; Beginning of the Celtic year and most important holiday. +11/02 All Souls Day +11/02 Memorial Day in Ecuador +11/03 Culture Day in Japan +11/03 Independence from Columbia in Panama +11/03 Independence of Cuenca in Ecuador +11/03 Thanksgiving Day in Liberia +11/04 Flag Day in Panama +11/04 Will Rogers Day, USA +11/06 Green March Day in Morocco +11/07 October Revolution Day in Hungary +11/08 Her Majesty, the Queen's Birthday in Nepal +11/10 King's Birthday in Bhutan +11/11 Angola gains independence from Portugal, 1975 +11/11 Independence Day in Angola +11/11 Independence of Cartagena in Colombia +11/11 Remembrance Day in Canada +11/11 Republic Day in Maldives +11/14 King Hussein's Birthday in Jordan +11/15 Dynasty Day in Belgium +11/15 Proclamation of the Republic in Brazil +11/15 Thatlouang Festival in Laos +11/16 Oklahoma Heritage Week in Oklahoma +11/17 Army Day in Zaire +11/17 Corrective Movement in Syrian Arab Republic +11/18 Battle of Viertieres in Haiti +11/18 Independence Day in Morocco +11/18 National Days (4 days) in Oman +11/19 Anniversary of the 1968 Coup by the Army in Mali +11/19 Discovery Day in Puerto Rico +11/19 Feast Day of S.A.S. Prince Rainier in Monaco +11/19 Garifuna Settlement in Belize +11/20 Revolution Day in Mexico +11/22 Anniversary of Portuguese Aggression in Guinea +11/22 Independence Day in Lebanon +11/23 Labor Thanksgiving Day in Japan +11/24 Anniversary of the New Regime in Zaire +11/25 Independence Day in Suriname +11/28 Independence Day in Albania and Mauritania +11/28 Independence from Spain in Panama +11/28 Proclamation of the Republic in Chad +11/29 Day of the Republic (2 days) in Yugoslavia +11/29 Goodwill Day in Liberia +11/29 Liberation Day in Albania +11/29 National Day in Burma +11/30 Independence Day in Barbados and Yemen Democratic Republic +11/30 National Day in Benin +11/30 National Heroes Day in Philippines +11/30 St. Andrew's Day - Patron Saint of Scotland +11/Wed+3 Day of Prayer and Repentance (Buss- und Bettag) in Federal Republic of Germany +12/01 Anniversary of the Restoration of Independence in Portugal +12/01 Union Day in Romania +12/01 Independence Day in Central African Republic +12/01 World AIDS Day +12/02 National Holiday in United Arab Emirates +12/03 National Holiday in Laos +12/05 King's Birthday in Thailand +12/06 Independence Day in Finland +12/07 Delaware Day in Delaware +12/07 Independence Day in Ivory Coast +12/07 Independence Day in Panama +12/08 Blessing of the Water in Uruguay +12/08 Mother's Day in Panama +12/08 Our Lady of the Cacupe in Paraguay +12/09 Independence Day in Tanzania +12/10 Foundation of Worker's Party in Angola +12/10 Human Rights Day +12/10 Thai Constitution Day in Thailand +12/10 Wyoming Day in Wyoming +12/11 Independence Day in Upper Volta +12/12 Independence Day in Kenya +12/13 Republic Day in Malta +12/15 Statue Day in the Netherlands Antilles +12/16 Constitution Day in Nepal +12/16 National Day in Bahrain +12/16 Victory Day in Bangladesh +12/17 National Day in Bhutan +12/18 Republic Day in Niger +12/23 Emperor's Birthday in Japan +12/23 Victory Day in Egypt +12/25 Birthday of Quaid-i-Azam in Pakistan +12/25 Children's Day in Congo +12/26 Boxing Day +12/26 Feast of Our Theotokos in Greece +12/26 St. Stephen's Day +12/26 Bank Holiday in Canada, Rep. of Ireland, and UK +12/27 Bank Holiday in Cayman Islands +12/27 Constitution Day in North Korea +12/27 Public Holiday in Lesotho, Zimbabwe +12/29 Civic Holidays (3 days) in Costa Rica +12/29 His Majesty, the King's Birthday in Nepal +12/30 Anniversary of the Democratic Republic of Madagascar in Madagascar +12/31 Bank Holiday in El Salvador, Honduras, Pakistan +12/31 Feed Yourself Day in Benin +12/31 Proclamation of the Republic in Congo + +#endif /* !_calendar_holiday_ */ diff --git a/misc_cmds/calendar/calendars/calendar.hungarian b/misc_cmds/calendar/calendars/calendar.hungarian new file mode 100644 index 0000000..0fd3dd4 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.hungarian @@ -0,0 +1,12 @@ +/* + * Hungarian calendar file(s) + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.hungarian,v 1.1 2004/08/16 09:31:09 dwmalone Exp $ + */ + +#ifndef _calendar_hungarian_ +#define _calendar_hungarian_ + +#include + +#endif /* !_calendar_hungarian_ */ diff --git a/misc_cmds/calendar/calendars/calendar.judaic b/misc_cmds/calendar/calendars/calendar.judaic new file mode 100644 index 0000000..8247093 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.judaic @@ -0,0 +1,227 @@ +/* + * Judaic Calendar. Maintained by Josef Grosch . + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.judaic,v 1.13 2007/01/14 09:58:39 dwmalone Exp $ + * + */ + +/* + * $Id: calendar.judaic,v 1.45 2007/01/01 22:24:53 jgrosch Exp $ + */ + +#ifndef _calendar_judaic_ +#define _calendar_judaic_ + +/* + * Jewish calendar for the CE year 2007 + * 11 Tevet 5767 - 22 tevet 5768 + */ + + +01/06* Parshas Vayechi +01/13* Parshas Shemos +01/20* Parshas Vaera +01/20* Rosh Chodesh Shevat (Beginning of the month of Shevat) +01/27* Parshas Bo +02/03* Parshas Beshalach +02/03* Shabbos Shira +02/03* Tu B'Shevat (Feast of Trees) +02/10* Parshas Yisro +02/17* Parshas Mishpatim +02/17* Shabbos Shekalim +02/18* Rosh Chodesh Adar (Beginning of the month of Adar) +02/18* Be Happy! It's Adar +02/19* Rosh Chodesh Adar (Beginning of the month of Adar) +02/19* Be Happy! It's Adar +02/24* Parshas Terumah +03/01* Ta'anis Esther (Fast of Esther, Battle of Purim) +03/03* Parshas Tetzaveh +03/03* Shabbos Zachor +03/04* Purim (Feast of Lots) +03/05* Shushan Purim +03/10* Parshas Ki Sisa +03/10* Shabbos Parah +03/17* Parshas Vayakhel-Pekudei +03/17* Shabbos HaChodesh +03/20* Rosh Chodesh Nissan (Beginning of the month of Nissan) +03/24* Parshas Vayikra +03/31* Parshas Tzav +03/31* Shabbos Haggadol +04/02* Erev Pesach +04/02* Ta'anis Bechoros (Fast of the First Born) +04/02* First Seder night +04/03* Pesach (First Day of Passover; sabbatical) +04/03* Second Sedar night +04/04* Pesach (Second Day of Passover; sabbatical) +04/04* Sefirat ha-Omer begins (Counting of the Omer) +04/05* Omer 2nd day +04/05* Pesach (Third Day of Passover; sabbatical) +04/05* Hol Hamoed +04/06* Omer 3rd day +04/06* Pesach (Fourth Day of Passover) +04/06* Hol Hamoed +04/07* Omer 4th day +04/07* Pesach (Fifth Day of Passover) +04/07* Hol Hamoed +04/08* Omer 5th day +04/08* Pesach (Sixth Day of Passover) +04/08* Hol Hamoed +04/09* Omer 6th day +04/09* Pesach (Seventh Day of Passover) +04/10* Omer 7th day +04/10* Pesach (Last Day of Passover; 8th day of Pesach; sabbatical) +04/10* Yizkor +04/11* Omer 8th day +04/12* Omer 9th day +04/13* Omer 10th day +04/14* Omer 11th day +04/14* Parshas Shmini +04/15* Omer 12th day +04/15* Yom HaShoah (Holocaust Memorial Day) +04/16* Omer 13th day +04/17* Omer 14th day +04/18* Omer 15th day +04/18* Rosh Chodesh Iyar (Beginning of the month of Iyar) +04/19* Omer 16th day +04/19* Rosh Chodesh Iyar (Beginning of the month of Iyar) +04/20* Omer 17th day +04/21* Omer 18th day +04/21* Parshas Tazria-Metzora +04/22* Omer 19th day +04/23* Omer 20th day +04/23* Yom HaZikaron +04/24* Omer 21th day +04/24* Yom HaAtzma'ut (Israel Independence Day) +04/25* Omer 22th day +04/26* Omer 23th day +04/27* Omer 24th day +04/28* Omer 25th day +04/28* Parshas Achrei Kedoshim +04/29* Omer 26th day +04/30* Omer 27th day +05/01* Omer 28th day +05/02* Omer 29th day +05/03* Omer 30th day +05/04* Omer 31th day +05/05* Omer 32th day +05/05* Parshas Emor +05/06* Lag B'Omer (Commemoration of the Great Rebellion) +05/06* Omer 33th day +05/07* Omer 34th day +05/08* Omer 35th day +05/09* Omer 36th day +05/10* Omer 37th day +05/11* Omer 38th day +05/12* Omer 39th day +05/12* Parshas Behar-Bechukosai +05/13* Omer 40th day +05/14* Omer 41th day +05/15* Omer 42th day +05/16* Omer 43th day +05/16* Yom Yerushalayim (Reunification of Jerusalem) +05/17* Omer 44th day +05/18* Omer 45th day +05/18* Rosh Chodesh Sivan (Beginning of the month of Sivan) +05/19* Omer 46th day +05/19* Parshas Bamidbar +05/20* Omer 47th day +05/21* Omer 48th day +05/22* Erev Shavuos +05/22* Omer 49th day +05/23* Shavuos (Festival of Weeks; sabbatical) +05/24* Shavuos (Festival of Weeks; sabbatical) +05/24* Yizkor +05/26* Parshas Nasso +06/02* Parshas Beha'aloscha +06/09* Parshas Shelach Lecha +06/16* Parshas Korach +06/16* Rosh Chodesh Tammuz (Beginning of the month of Tammuz) +06/17* Rosh Chodesh Tammuz (Beginning of the month of Tammuz) +06/23* Parshas Chukas +06/30* Parshas Balak +07/03* Fast of Shiv'a Asar B'Tammuz (Romans breach Wall of Jerusalem; fast day) +07/03* Tzom Tammuz +07/07* Parshas Pinchas +07/14* Parshas Matos-Masei +07/16* Rosh Chodesh Av (Beginning of the month of Av) +07/21* Parshas Devarim +07/21* Shabbos Hazon +07/24* Fast of Tish'a B'Av (Babylon/Rome destroys Holy Temple; fast day) +07/28* Parshas Vaeschanan +07/28* Shabbos Nachamu +07/30* Tu B'Av +08/04* Parshas Eikev +08/11* Parshas Re'eh +08/14* Rosh Chodesh Elul (Beginning of the month of Elul) +08/15* Rosh Chodesh Elul (Beginning of the month of Elul) +08/18* Parshas Shoftim +08/25* Parshas Ki Tetze +09/01* Parshas Ki Savo +09/08* Parshas Nitzavim-Vayeilech +09/12* Erev Rosh Hashana +09/13* First Day of Rosh Hashanah (Jewish New Year; 5768; sabbatical) +09/13* Rosh Chodesh Tishrei (Beginning of the month of Tishrei) +09/14* Rosh Hashanah (sabbatical) +09/15* Parshas Ha'Azinu +09/15* Shabbos Shuvah +09/16* Fast of Gedalya (Murder of Gedalya and subsequent Exile; fast day) +09/16* Tzom Gedaliah +09/21* Erev Yom Kippur +09/22* Yom Kippur (Day of Atonement; sabbatical, fast day) +09/22* Yizkor +09/26* Erev Sukkos +09/27* Succos (Festival of Tabernacles; sabbatical) +09/28* Succos (sabbatical) +09/28* Sukkos (Second day of Sukkos) +09/29* Sukkos (Third day of Sukkos) +09/29* Hol Hamoed +09/30* Sukkos (Fourth day of Sukkos) +09/30* Hol Hamoed +10/01* Sukkos (Fifth day of Sukkos) +10/01* Hol Hamoed +10/02* Sukkos (Sixth day of Sukkos) +10/02* Hol Hamoed +10/03* Hoshanah Rabba (Seventh day of Succos) +10/03* Sukkos (Seventh day of Sukkos) +10/04* Shmini Atzeres (8th Day of Gathering; sabbatical) +10/04* Yizkor +10/05* Simchas Torah (Rejoicing of the Law; sabbatical) +10/06* Parshas Bereshis +10/12* Rosh Chodesh Heshvan (Beginning of the month of Heshvan) +10/13* Parshas Noach +10/13* Rosh Chodesh Heshvan (Beginning of the month of Heshvan) +10/20* Parshas Lech-Lecha +10/27* Parshas Vayera +11/03* Parshas Chayei Sara +11/10* Parshas Toldos +11/11* Rosh Chodesh Kislev (Beginning of the month of Kislev) +11/17* Parshas Vayetzei +11/24* Parshas Vayishlach +12/01* Parshas Vayeshev +12/04* Erev Chanukah +12/04* Light 1st candle +12/05* Chanukah (First Day) +12/05* Light 2nd candle +12/06* Chanukah (Second Day) +12/06* Light 3rd candle +12/07* Chanukah (Third Day) +12/07* Light 4th candle +12/08* Chanukah (Fourth Day) +12/08* Parshas Miketz +12/08* Light 5th candle +12/09* Chanukah (Fifth Day) +12/09* Light 6th candle +12/10* Chanukah (Sixth Day) +12/10* Rosh Chodesh Tevet (Beginning of the month of Tevet) +12/10* Light 7th candle +12/11* Chanukah (Seventh Day) +12/11* Light 8th candle +12/12* Chanukah (Eight Day) +12/15* Parshas Vayigash +12/19* Asara B'Tevet +12/19* Fast of Asara B'Tevet (Babylonians put siege on Jerusalem; fast day) +12/22* Parshas Vayechi +12/29* Parshas Shemos + + +#endif /* !_calendar_judaic_ */ diff --git a/misc_cmds/calendar/calendars/calendar.lotr b/misc_cmds/calendar/calendars/calendar.lotr new file mode 100644 index 0000000..9adb342 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.lotr @@ -0,0 +1,48 @@ +/* + * Lord Of The Rings + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.lotr,v 1.2 2003/10/09 00:31:48 grog Exp $ + */ + +#ifndef _calendar_lotr_ +#define _calendar_lotr_ + +01/05 Fellowship enters Moria +01/09 Fellowship reaches Lorien +01/17 Passing of Gandalf +02/07 Fellowship leaves Lorien +02/17 Death of Boromir +02/20 Meriadoc & Pippin meet Treebeard +02/22 Passing of King Elessar +02/24 Ents destroy Isengard +02/26 Aragorn takes the Paths of the Dead +03/05 Frodo & Samwise encounter Shelob +03/08 Deaths of Denethor & Theoden +03/18 Destruction of the Ring +03/29 Flowering of the Mallorn +04/04 Gandalf visits Bilbo +04/17 An unexpected party +04/23 Crowning of King Elessar +05/19 Arwen leaves Lorien to wed King Elessar +06/11 Sauron attacks Osgiliath +06/13 Bilbo returns to Bag End +06/23 Wedding of Elessar & Arwen +07/04 Gandalf imprisoned by Saruman +07/24 The ring comes to Bilbo +07/26 Bilbo rescued from Wargs by Eagles +08/03 Funeral of King Theoden +08/29 Saruman enters the Shire +09/10 Gandalf escapes from Orthanc +09/14 Frodo & Bilbo's birthday +09/15 Black riders enter the Shire +09/18 Frodo and company rescued by Bombadil +09/28 Frodo wounded at Weathertop +10/05 Frodo crosses bridge of Mitheithel +10/16 Boromir reaches Rivendell +10/17 Council of Elrond +10/25 End of War of the Ring +11/16 Bilbo reaches the Lonely Mountain +12/05 Death of Smaug +12/16 Fellowship begins Quest + +#endif /* !_calendar_lotr_ */ diff --git a/misc_cmds/calendar/calendars/calendar.music b/misc_cmds/calendar/calendars/calendar.music new file mode 100644 index 0000000..a2e4292 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.music @@ -0,0 +1,240 @@ +/* + * Music + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.music,v 1.19 2007/01/24 21:21:38 dougb Exp $ + */ + +#ifndef _calendar_music_ +#define _calendar_music_ + +01/01 Country Joe McDonald is born in El Monte, California, 1942 +01/03 Steven Stills is born in Dallas, 1945 +01/04 Jazz great Charlie Mingus dies at 57 in Cuernavaca, Mexico, 1979 +01/08 David Bowie (then David Robert Jones) is born in London, 1947 +01/08 Elvis Presley born, 1935 +01/09 James Patrick Page (Led Zeppelin) is born in Middlesex, England, 1945 +01/10 Blues guitarist Howlin' Wolf dies in Chicago, 1976 +01/10 Jim Croce is born in Philadelphia, 1943 +01/10 Pat Benatar is born in Long Island, 1952 +01/10 Rod Stewart is born in Glasgow, Scotland, 1945 +01/13 Eric Clapton plays the "Rainbow Concert" in London, 1973 +01/17 Led Zeppelin's first album is released, 1969 +01/19 Janis Joplin is born in Port Arthur, Texas, 1943 +01/22 Sam Cooke is born in Chicago, 1935 +01/24 Warren Zevon is born in Chicago, 1947 +01/25 Bob Dylan plays the second "Hurricane" benefit, in the Astrodome, 1978 +01/27 Bobby "Blue" Bland (Robert Calvin Bland) is born in Tennessee, 1930 +01/27 Wolfgang Amadeus Mozart is born in Salzburg, Austria, 1756 +01/28 Jimi Hendrix headlines Madison Square Garden, 1970 +01/30 Lightnin' Hopkins, the most-recorded blues artist ever, dies, 1982 +01/31 Franz Schubert is born in Lichtenthal, Vienna, Austria, 1797 +01/31 The Grateful Dead are busted in New Orleans, 1970 +02/01 RCA Victor unveils the 45 rpm record playing system, 1949 +02/02 Graham Nash is born in Lancashire, England, 1942 +02/03 Felix Mendelssohn Bartholdy is born in Hamburg, Germany, 1809 +02/03 The Day The Music Died; Buddy Holly, Richie Valens, and the Big + Bopper are killed in a plane crash outside Mason City, Iowa, 1959 +02/07 Beatles land at JFK airport to begin first U.S. tour, 1964 +02/07 Steven Stills makes the first digitally recorded rock album, 1979 +02/09 Carole King (Carole Klein) is born in Brooklyn, 1941 +02/12 The Beatles play Carnegie Hall in New York City, 1964 +02/13 Richard Wagner dies in Venice, Italy, 1883 +02/17 Jazz great Thelonius Monk dies in Englewood, New Jersey, 1982 +02/18 Yoko Ono Lennon is born in Tokyo, 1933 +02/19 Paul McCartney's "Give Ireland Back to the Irish" is banned in + Britain, 1972 +02/19 William "Smokey" Robinson is born in Detroit, 1940 +02/20 J. Geils (J. Geils Band) is born, 1946 +02/20 Yes sells out Madison Square Garden...without advertising, 1974 +02/23 George Friedrich Handel is born in Halle on the Saale, Germany, 1685 +02/23 Johnny Winter is born in Leland, Mississippi, 1944 +02/25 George Harrison born in Liverpool, England, 1943 +02/29 Jimmy Dorsey born, 1904 +03/01 Frederic Chopin is born in Zelazowa Wola, Warsaw, Poland, 1810 +03/01 Jim Morrison is busted for obscenity in Miami, 1969 +03/02 Blues guitarist Rory Gallagher is born in Ballyshannon, Ireland, 1949 +03/03 Buffalo Springfield is formed in Los Angeles, 1966 +03/04 Antonio Vivaldi born in Venice, Italy, 1678 +03/07 Last Gilbert & Sullivan opera produced, 1896 +03/08 Ron "Pigpen" McKernan (Grateful Dead) dies in California, 1973 +03/08 (Louis) Hector Berlioz dies in Paris, 1869 +03/09 Robin Trower is born in London, 1945 +03/13 The Allman Brothers record their live album at the Fillmore East, 1971 +03/15 Sly Stone born, 1944 +03/17 Paul Kantner (Jefferson Airplane) is born in San Francisco, 1942 +03/21 Johann Sebastian Bach is born in Eisenach, Germany, 1685 +03/22 Ten Years After plays their last concert, 1974 +03/25 Aretha Franklin is born in Detroit, 1943 +03/25 Bela Bartok is born in Nagyszentmiklos, Hungary, 1881 +03/26 Emerson, Lake, and Palmer record "Pictures at an Exhibition" live, 1971 +03/26 Ludwig van Beethoven dies in Vienna, Austria, 1827 +03/28 Sergej Rachmaninow dies in Beverley Hills, 1943 +03/29 Carl Orff dies in Munich, Germany, 1982 +03/29 Dr. Hook gets a group picture on the cover of "Rolling Stone", 1973 +03/30 Eric Clapton is born in Surrey, England, 1945 +03/31 Joseph Haydn is born in Rohrau, Austria, 1732 +04/01 Sergej Rachmaninow is born in Oneg, Russia, 1873 +04/02 Marvin Gaye is born in Washington, D.C., 1939 +04/04 Muddy Waters (McKinley Morganfield) is born in Rolling Fork, + Mississippi, 1915 +04/09 Paul Robeson born, 1898 +04/10 Paul McCartney announces that he's quitting the Beatles, 1970 +04/14 George Friedrich Handel dies in London, England, 1759 +04/14 Ritchie Blackmore (Deep Purple, Rainbow) is born, 1945 +04/18 Yes breaks up after 13 years, 1981 +04/25 Blues guitarist Albert King is born, 1925 +04/25 Ella Fitzgerald born, 1918 +04/26 Carol Burnett born in San Antonio, Texas, 1933 +04/29 "Hair" premiers on Broadway, 1968 +05/01 Kate Smith born, 1909 +05/01 Antonin Dvorak dies in Prague, 1904 +05/03 Bob Seger is born in Ann Arbor, Michigan, 1945 +05/07 Johannes Brahms is born in Hamburg, Germany, 1833 +05/07 Tchaikowsky born, 1840 +05/10 Dave Mason is born in Worcester, England, 1945 +05/11 Bob Marley dies in his sleep in Miami, 1981 +05/12 Pink Floyd performs the first quadrophonic concert, 1977 +05/18 Gustav Mahler dies in Vienna, Austria, 1911 +05/18 Rick Wakeman is born in West London, England, 1949 +05/19 Pete Townshend is born in London, 1945 +05/20 The Jimi Hendrix Experience is signed by Reprise Records, 1967 +05/22 Richard Wagner is born in Leipzig, Germany, 1813 +05/23 Blues great Elmore James dies, 1963 +05/24 Bob Dylan (Robert Zimmerman) is born in Duluth, 1941 +05/26 Al Jolson born, 1886 +05/31 Joseph Haydn dies in Vienna, Austria, 1809 +05/31 The Who perform the loudest concert ever -- 76,000 watts of PA, 1976 +06/01 The Beatles release "Sgt. Pepper", 1967 +06/03 Georges Bizet dies in Bougival, Paris, France, 1875 +06/05 Carl Maria von Weber dies in London, England, 1826 +06/06 "Rock Around The Clock" makes Billboard's #1 slot, 1955 +06/06 Dee Dee Ramone dies, 2002 +06/07 Blind Faith debuts in concert at London's Hyde Park, 1969 +06/08 Robert Schumann is born in Zwickau, Germany, 1810 +06/09 Les Paul (Lester Polfus) is born in Waukesha, Wisconsin, 1923 +06/10 Howlin' Wolf (Chester Burnett) is born in West Point, Mississippi, 1910 +06/10 Judy Garland born, 1922 +06/11 Richard Strauss is born in Munich, Germany, 1864 +06/15 Edvard Grieg is born in Bergen, Norway, 1843 +06/15 Harry Nilsson is born in Brooklyn, 1941 +06/16 The Monterey Pop festival opens, 1967 +06/18 Paul McCartney born in Liverpool, England, 1942 +06/21 Columbia records announces the first mass production of LP's, 1948 +06/22 Todd Rundgren is born in Upper Darby, Pennsylvania, 1948 +06/24 Jeff Beck is born in Surrey, England, 1944 +06/27 John Entwistle dies in Las Vegas, 2002 +07/02 Felix Pappalardi and Leslie West form Mountain, 1969 +07/03 Jim Morrison dies in Paris, 1971 +07/06 The Jefferson Airplane is formed in San Francisco, 1965 +07/07 Gustav Mahler is born in Kalischt, Bohemia, 1860 +07/07 Ringo Starr (Richard Starkey) born in Liverpool, England, 1940 +07/10 Carl Orff is born in Munich, Germany, 1895 +07/12 Chicago DJ Steve Dahl holds "Disco Demolition" at Kamisky Park, 1979 +07/14 Woodie Guthrie born, 1912 +07/16 Cream forms in the U.K., 1966 +07/16 Harry Chapin dies on Long Island Expressway, 1981 +07/17 "Yellow Submarine" premieres at the London Pavilion, 1968 +07/20 Carlos Santana is born in Autlan, Mexico, 1947 +07/25 Bob Dylan goes electric at the Newport Folk Festival, 1965 +07/25 Crosby, Stills, Nash & Young debut at the Fillmore East, 1969 +07/26 Mick Jagger is born in Kent, England, 1943 +07/28 Antonio Vivaldi dies in Vienna, 1741 +07/28 Johann Sebastian Bach dies in Leipzig, 1750 +07/28 The Watkins Glen "Summer Jam" opens, 1973 +07/29 Robert Schumann dies in Endenich, Bonn, Germany, 1856 +08/01 The Concert for Bangla Desh takes place at Madison Square Garden, 1971 +08/04 John Lennon points out that "the Beatles are more popular than Jesus", 1966 +08/10 Ian Anderson (Jethro Tull) is born in Edinburgh, Scotland, 1947 +08/13 Dan Fogelberg is born in Peoria, Illinois, 1951 +08/15 Beatles replace drummer Pete Best with Richard Starkey, 1962 +08/15 The Beatles play Shea Stadium in New York, 1965 +08/15 Woodstock Festival, Max Yasgur's farm, 1969 +08/16 Elvis Presley dies, 1977 +08/16 Madonna Louise Ciccone born in Bay City, Michigan, 1958 +08/21 Joe Strummer (The Clash), born John Mellor in Ankara, Turkey, 1952 +08/23 Keith Moon is born in London, England, 1946 +08/26 Jimi Hendrix gives his last performance at the Isle of Wight, 1970 +08/26 Jimi Hendrix's Electric Ladyland Studios opens in New York, 1970 +09/04 Edvard Grieg dies in Bergen, Norway, 1907 +09/07 Keith Moon (The Who) dies in London of a drug overdose, 1978 +09/07 Warren Zevon dies in Los Angeles of lung cancer (mesothelioma), 2003 +09/08 Antonin Dvorak born in Nelahozeves, Bohemia, 1841 +09/08 Richard Strauss dies in Garmisch-Partenkirchen, Germany, 1949 +09/08 Ron "Pigpen" McKernan (Grateful Dead) is born in San Bruno, California, 1945 +09/14 Francis Scott Key writes words to "Star Spangled Banner", 1814 +09/16 B.B. King is born in Itta Bena, Mississippi, 1925 +09/18 Dee Dee Ramone (Douglas Colvin) born in Fort Lee, Virginia, 1952 +09/19 Simon & Garfunkel reunite to play New York's Central Park, 1981 +09/20 Jim Croce dies in a plane crash, 1973 +09/23 "Paul is dead" rumors sweep the country, 1969 +09/23 Bruce "The Boss" Springsteen is born in Freehold, New Jersey, 1949 +09/25 John Bonham (Led Zeppelin) dies of alcohol poisoning, 1980 +09/26 Bela Bartok dies in New York, 1945 +09/26 George Gershwin is born in Brooklyn, NY, 1898 +10/04 Janis Joplin dies of a heroin overdose in Hollywood, 1970 +10/05 Steve Miller is born in Dallas, 1943 +10/07 First Bandstand (later, American Bandstand) broadcast, 1957 +10/09 John Entwistle is born in London, England, 1944 +10/09 John Lennon born in Liverpool, England, 1940 +10/10 John Prine is born in Maywood, Illinois, 1946 +10/12 Ray Conniff dies after falling down and hitting his head, 2002 +10/12 The Jimi Hendrix Experience is formed in London, 1966 +10/16 Bob Weir (Grateful Dead) is born in San Francisco, 1947 +10/17 "Hair" opens at New York's Public Theater, 1967 +10/17 Frederic Chopin dies in Paris, France, 1849 +10/18 Chuck Berry is born in San Jose, California, 1926 +10/20 Three members of Lynyrd Skynyrd die in a plane crash, 1977 +10/21 Jesus Christ Super Star debuted on Broadway, 1971 +10/22 Franz Liszt born, 1811 +10/22 Pablo Casals dies in Puerto Rico, 1973 +10/25 Georges Bizet is born in Paris, France, 1838 +10/25 Jon Anderson (Yes) is born in Lancashire, England, 1944 +10/25 The Rolling Stones appear on The Ed Sullivan Show, 1964 +10/29 Duane Allman dies in motorcycle crash near Macon, Georgia, 1971 +10/30 Grace Slick is born in Chicago, 1939 +11/02 Jimi Hendrix's "Electric Ladyland" enters US charts at #1, 1968 +11/02 Keith Emerson is born, 1944 +11/03 James Taylor and Carly Simon are married in Manhattan, 1972 +11/04 Felix Mendelssohn Bartholdy dies in Leipzig, Germany, 1847 +11/06 Ray Conniff born in Attleboro, Massachusetts, 1916 +11/07 Joni Mitchell (Roberta Joan Anderson) is born in Alberta, Canada, 1943 +11/08 Patti Page born, 1927 +11/09 The first issue of "Rolling Stone" is published, 1967 +11/10 Greg Lake is born in Bournemouth, England, 1948 +11/12 Neil Young is born in Toronto, 1945 +11/13 Paul Simon born, 1942 +11/16 Bill Ham first demonstrates his psychedelic "Light Show", 1965 +11/18 Carl Maria von Weber is born in Eutin, Germany, 1786 +11/19 Franz Schubert dies in Vienna, Austria, 1828 +11/20 Duane Allman is born in Nashville, Tennessee, 1946 +11/20 Joe Walsh is born in Cleveland, 1947 +11/22 Saint Cecilia's day (patron saint of music) +11/24 Scott Joplin born, 1868 +11/25 "The Last Waltz" concert is played by The Band at Winterland, 1976 +11/25 Johann Strauss, Jr., writes `On the Beautiful Blue Danube', 1867 +11/26 Cream performs their farewell concert at Royal Albert Hall, 1968 +11/26 Paul Hindemith is born in Hanau, Germany, 1895 +11/27 Jimi Hendrix (Johnny Allen Hendrix) is born in Seattle, 1942 +11/29 Pau Casals born in Vendrell, 1876 +11/30 George Harrison dies at 13:30 in L.A., 2001 +12/04 Frank Zappa dies in his Laurel Canyon home shortly before 18:00, 1993 +12/05 Wolfgang Amadeus Mozart dies in Vienna, Austria, 1791 +12/06 First sound recording made by Thomas Edison, 1877 +12/06 The Rolling Stones play Altamont Speedway near San Francisco, 1969 +12/07 Harry Chapin is born in New York City, 1942 +12/08 Jim Morrison is born in Melbourne, Florida, 1943 +12/08 John Lennon is shot and killed in New York City, 1980 +12/09 The Who's "Tommy" premieres in London, 1973 +12/11 (Louis) Hector Berlioz born in La-Côte-Saint-André, 1803 +12/13 Ted Nugent, the motor city madman, born in Detroit, 1949 +12/15 Thomas Edison receives patent on the phonograph, 1877 +12/16 Don McLean's "American Pie" is released, 1971 +12/17 Ludwig van Beethoven is christened in Bonn, 1770 +12/21 Frank Zappa is born in Baltimore, 1940 +12/23 First G&S collaboration, Thespis, 1871 +12/23 Joe Strummer (born John Mellor) dies in Broomfield, England, 2002 +12/28 Edgar Winter is born in Beaumont, Texas, 1946 +12/28 Paul Hindemith dies in Frankfurt/Main, Germany, 1963 +12/31 Jimi Hendrix introduces the Band of Gypsies at the Fillmore East, 1969 + +#endif /* !_calendar_music_ */ diff --git a/misc_cmds/calendar/calendars/calendar.newzealand b/misc_cmds/calendar/calendars/calendar.newzealand new file mode 100644 index 0000000..3437c83 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.newzealand @@ -0,0 +1,25 @@ +/* + * New Zealand holidays + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.newzealand,v 1.2 2005/01/01 18:58:28 ceri Exp $ + */ + +#ifndef _calendar_newzealand_ +#define _calendar_newzealand_ + +Jan 02 New Year Holiday (NZ) +Jan 14 Anniversary Day (Southland) +Jan 21 Anniversary Day (Wellington) +Jan 28 Anniversary Day (Auckland) +Feb 06 Waitangi Day (NZ) +Mar 11 Anniversary Day (Taranaki) +Mar 25 Anniversary Day (Otago) +Jun 03 Queen's Birthday (NZ) +Sep 23 Anniversary Day (South Canterbury) +Oct 25 Anniversary Day (Hawke's Bay) +Oct 28 Labour Day (NZ) +Nov 04 Anniversary Day (Marlborough) +Nov 15 Anniversary Day (Canterbury) +Dec 02 Anniversary Day (Chatham Islands) + +#endif diff --git a/misc_cmds/calendar/calendars/calendar.russian b/misc_cmds/calendar/calendars/calendar.russian new file mode 100644 index 0000000..489d21f --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.russian @@ -0,0 +1,12 @@ +/* + * Russian calendar files + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.russian,v 1.5 2000/05/04 11:35:27 phantom Exp $ + */ + +#ifndef _calendar_russian_ +#define _calendar_russian_ + +#include + +#endif /* !_calendar_russian_ */ diff --git a/misc_cmds/calendar/calendars/calendar.southafrica b/misc_cmds/calendar/calendars/calendar.southafrica new file mode 100644 index 0000000..5ff5013 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.southafrica @@ -0,0 +1,23 @@ +/* + * South African holidays + * Note: The Public Holidays Act (Act No 36 of 1994) determines whenever + * any public holiday falls on a Sunday, the Monday following on it shall + * be an unnamed public holiday in addition to the named holiday the day + * before. This file format is not complex enough to reflect this, but + * if it ever is, the change should be made. + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.southafrica,v 1.1 2002/11/19 00:29:36 grog Exp $ + */ + +#ifndef _calendar_southafrica_ +#define _calendar_southafrica_ + +03/01 Human Rights Day in South Africa +04/27 Freedom Day in South Africa +05/01 Workers Day in South Africa +06/16 Youth Day in South Africa +08/09 National Women's Day in South Africa +09/24 Heritage Day in South Africa +12/16 Day of Reconciliation in South Africa +12/26 Day of Goodwill in South Africa + +#endif diff --git a/misc_cmds/calendar/calendars/calendar.ukrainian b/misc_cmds/calendar/calendars/calendar.ukrainian new file mode 100644 index 0000000..0a25db1 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.ukrainian @@ -0,0 +1,12 @@ +/* + * Ukrainian calendar files + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.ukrainian,v 1.1 2005/10/28 21:25:28 ru Exp $ + */ + +#ifndef _calendar_ukrainian_ +#define _calendar_ukrainian_ + +#include + +#endif /* !_calendar_ukrainian_ */ diff --git a/misc_cmds/calendar/calendars/calendar.usholiday b/misc_cmds/calendar/calendars/calendar.usholiday new file mode 100644 index 0000000..f64c10b --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.usholiday @@ -0,0 +1,42 @@ +/* + * USA holiday + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.usholiday,v 1.9 2007/04/29 20:03:06 dwmalone Exp $ + */ + +#ifndef _calendar_usholiday_ +#define _calendar_usholiday_ + +01/01 New Year's Day +01/14 Julian Calendar New Year's Day +02/02 Groundhog Day +02/14 St. Valentine's Day +02/MonThird President's Day (3rd Monday of February) +03/05 Mother-in-Law Day, USA +03/SunSecond Daylight Savings Time begins in USA; clocks move forward (2nd Sunday of March) +03/17 St. Patrick's Day +03/20* Vernal Equinox +04/01 April Fool's Day +04/15 Income Tax Day, USA. +04/28* Arbor Day, USA (varies from state to state) +05/SunSecond Mother's Day (2nd Sunday of May) +05/SatThird Armed Forces in USA Day (3rd Saturday of May) +05/MonLast Memorial Day in USA (Last Monday of May) +06/SunThird Father's Day (3rd Sunday of June) +06/21* Summer Solstice +07/04 US Independence Day +09/MonFirst Labor Day in USA (1st Monday of September) +09/SunSecond Grandparent's Day in USA (2nd Sunday of September; varies from state to state) +09/22* Autumnal Equinox +10/MonSecond Columbus Day in USA (2nd Monday of October) +10/31 All Hallows Eve (Halloween) +11/05* Election Day in USA (1st Tuesday after 1st Monday for even years) +11/SunFirst Daylight Savings Time ends in USA; clocks move back (1st Sunday of November) +11/11 Veterans' Day +11/ThuFourth Thanksgiving Day (4th Thursday in November) +12/21* Winter Solstice +12/24 Christmas Eve +12/25 Christmas +12/31 New Year's Eve + +#endif /* !_calendar_usholiday_ */ diff --git a/misc_cmds/calendar/calendars/calendar.world b/misc_cmds/calendar/calendars/calendar.world new file mode 100644 index 0000000..7f6b873 --- /dev/null +++ b/misc_cmds/calendar/calendars/calendar.world @@ -0,0 +1,19 @@ +/* + * World wide calendar files, except national calendars + * + * $FreeBSD: src/usr.bin/calendar/calendars/calendar.world,v 1.5 2003/02/15 10:57:20 seanc Exp $ + */ + +#ifndef _calendar_world_ +#define _calendar_world_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif /* !_calendar_world_ */ diff --git a/misc_cmds/calendar/calendars/de_AT.ISO_8859-15/calendar.feiertag b/misc_cmds/calendar/calendars/de_AT.ISO_8859-15/calendar.feiertag new file mode 100644 index 0000000..ddac0f6 --- /dev/null +++ b/misc_cmds/calendar/calendars/de_AT.ISO_8859-15/calendar.feiertag @@ -0,0 +1,62 @@ +/* + * Feiertage + * + * $FreeBSD: src/usr.bin/calendar/calendars/de_AT.ISO_8859-15/calendar.feiertag,v 1.1 2004/05/23 13:22:01 josef Exp $ + */ + +#ifndef _de_AT_ISO8859_15_feiertag_ +#define _de_AT_ISO8859_15_feiertag_ + +LANG=de_AT.ISO8859-15 + +/* arbeitsfreie staatliche Feiertage */ +01/01 Neujahr +05/01 Staatsfeiertag +10/26 Nationalfeiertag + +/* christliche Feiertage, meist irgendwo arbeitsfrei */ +01/06 Heilige 3 Könige +Easter-2 Karfreitag +Easter Ostersonntag +Easter+1 Ostermontag +Easter+49 Pfingstsonntag +Easter+50 Pfingstmontag +Easter+39 Christi Himmelfahrt +Easter+60 Fronleichnam + +08/15 Mariä Himmelfahrt + +11/01 Allerheiligen +11/02 Allerseelen + +12/08 Mariä Empfängnis +12/24 Heiligabend +12/25 Weihnachten +12/26 Stephanstag +12/31 Silvester + +/* Gedenktage - nicht arbeitsfreie Feiertage */ +02/14 Valentinstag +02/WednesdayLast Aschermittwoch +Easter-7 Palmsonntag +Nov Sun+3 Totensonntag +Nov Sun+4 1. Advent +Dec Sun+1 2. Advent +12/06 Nikolaus +Dec Sun+2 3. Advent +Dec Sun+3 4. Advent + +/* Jahreszeiten */ +03/20* Frühlingsanfang +06/21* Sommeranfang +09/23* Herbstanfang +12/21* Winteranfang + +/* Sommer- und Winterzeit */ +03/SundayLast Anfang der Sommerzeit +10/SundayLast Ende der Sommerzeit + +/* Blumenverkäufer */ +May Sun+2 Muttertag + +#endif /*! _de_AT_ISO8859_15_feiertag_ */ diff --git a/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.all b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.all new file mode 100644 index 0000000..1274934 --- /dev/null +++ b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.all @@ -0,0 +1,17 @@ +/* + * deutscher Kalender + * + * $FreeBSD: src/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.all,v 1.6 2001/06/11 03:06:13 ache Exp $ + */ + +#ifndef _de_DE_ISO8859_1_all_ +#define _de_DE_ISO8859_1_all_ + +#include +#include +#include +#include +#include +#include + +#endif /* !_de_DE.ISO8859-1_all_ */ diff --git a/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.feiertag b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.feiertag new file mode 100644 index 0000000..48cfd31 --- /dev/null +++ b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.feiertag @@ -0,0 +1,56 @@ +/* + * Feiertage + * + * $FreeBSD: src/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.feiertag,v 1.14 2006/10/01 09:22:05 maxim Exp $ + */ + +#ifndef _de_DE_ISO8859_1_feiertag_ +#define _de_DE_ISO8859_1_feiertag_ + +LANG=de_DE.ISO8859-1 + +/* arbeitsfreie staatliche Feiertage */ +01/01 Neujahr +05/01 Maifeiertag +10/03 Tag der deutschen Einheit + +/* christliche Feiertage, meist irgendwo arbeitsfrei */ +Easter-2 Karfreitag +Easter Ostersonntag +Easter+1 Ostermontag +Easter+49 Pfingstsonntag +Easter+50 Pfingstmontag +Easter+39 Christi Himmelfahrt +Easter+60 Fronleichnam + +08/08 Friedensfest (Augsburg) +08/15 Mariä Himmelfahrt + +10/31 Reformationstag +11/01 Allerheiligen +11/02 Allerseelen +11/Wed+4 Buß- und Bettag + +12/24 Heiligabend +12/25 Erster Weihnachtstag +12/26 Zweiter Weihnachtstag +12/31 Silvester + +/* Gedenktage - nicht arbeitsfreie Feiertage :-( */ +06/17 Arbeiteraufstand am 17. Juni 1953 +01/27 Gedenktag für die Opfer des Nationalsozialismus + +/* Jahreszeiten */ +03/20* Frühlingsanfang +06/21* Sommeranfang +09/23* Herbstanfang +12/21* Winteranfang + +/* Sommer- und Winterzeit */ +03/SundayLast Anfang der Sommerzeit +10/SundayLast Ende der Sommerzeit + +/* Blumenverkäufer */ +May Sun+2 Muttertag + +#endif /*! _de_DE_ISO8859_1_feiertag_ */ diff --git a/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.geschichte b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.geschichte new file mode 100644 index 0000000..64ccc31 --- /dev/null +++ b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.geschichte @@ -0,0 +1,198 @@ +/* + * deutsche Geschichte + * + * + * Die Angaben wurden überwiegend entnommen aus dem Buch: + * + * Fragen an die deutsche Geschichte, Ideen, Kräfte, Entscheidungen von + * 1800 bis zur Gegenwart; historische Ausstellung im Reichstagsgebäude + * in Berlin; Katalog, 16. Auflage, Sonderausgabe - Bonn: Deutscher + * Bundestag, Referat Öffentlichkeitsarbeit, 1990 + * + * English Title: Questions on German history + * + * ISBN 3-924521-59-X + * + * $FreeBSD: src/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.geschichte,v 1.13 2005/09/23 11:58:16 krion Exp $ + */ + +#ifndef _de_DE_ISO8859_1_geschichte_ +#define _de_DE_ISO8859_1_geschichte_ + +LANG=de_DE.ISO8859-1 + +/* 1800-1933 */ +07/11 Gründung des Rheinbundes, 1806 +10/14 Doppelschlacht bei Jena und Auerstedt, 1806 +10/16 Völkerschlacht bei Leipzig, 1813 +06/18 Niederlage Napoleons bei Waterloo, 1815 +10/18 Wartburgfest der Deutschen Burschenschaften, 1817 +01/01 Inkrafttreten des Vertrages über den deutschen Zollverein, 1834 +12/07 Erste deutsche Eisenbahn zwischen Nürnberg und Fürth, 1835 +06 Aufstand der schlesischen Weber, 1844 +12/21 Verabschiedung des Gesetzes über die Grundrechte des deutschen + Volkes durch die Frankfurter Nationalversammlung, 1848 +03/27 Annahme der deutschen Reichsverfassung in der Frankfurter + Paulskirche, Wahl von Friedrich Wilhelm IV von Preußen zum + deutschen Kaiser, 1849 +04/28 Ablehnung der deutschen Kaiserkrone durch den preußischen König, 1849 +07/03 Schlacht von Königgrätz +07/13 Emser Depesche, 1870 +07/18 Verkündung des Dogmas von der päpstlichen Unfehlbarkeit + durch das I. Vatikanische Konzil +01/18 Proklamation des deutschen Kaiserreiches in Versailles, 1871 +10/18 Verabschiedung des Sozialistengesetzes durch den Reichstag, 1878 +03/20 Entlassung von Bismarck als Reichskanzler und + preußischer Ministerpräsident, 1890 +06/21 Eröffnung des Nord-Ostsee-Kanals, 1895 +01/07 Billigung des Bürgerlichen Gesetzbuches (BGB) durch den Reichstag, 1896 +01/01 Bürgerliches Gesetzbuch tritt in Kraft, 1900 +06/28 Ermordung des österreichischen Thronfolgers Erzherzog Franz + Ferdinand durch serbische Nationalisten in Sarajewo, 1914 +07/28 Kriegserklärung Österreich-Ungarns an Serbien, 1914 +08/01 Deutsche Mobilmachung und Kriegserklärung an Rußland, 1914 +08/03 Deutsche Kriegserklärung an Frankreich, 1914 +08/04 Kriegserklärung Großbritanniens an Deutschland, 1914 +08/04 Bewilligung der Kriegskredite im Reichstag, 1914 +08/26 Schlacht bei Tannenberg, 1914 +02/21 Schlacht um Verdun, 1916 +03/08 Ausbruch der Revolution in Rußland, Abdankung von Zar Nikolaus II, 1917 +04/06 Kriegserklärung der USA an Deutschland, 1917 +12/15 Waffenstillstand zwisch Rußland und Deutschland, 1917 +03/03 Frieden von Brest-Litowsk, 1918 +11/03 Matrosenaufstand in Kiel, 1918 +11/09 Ausrufung der Republik durch Scheidemann (SPD), 1918 +02/11 Friedrich Ebert wird Reichspräsident, Weimar 1919 +06/28 Unterzeichnung des Versailler Vertrages, 1919 +03/21 Volksabstimmung in Oberschlesien, 1921 +04/16 Vertrag von Rapallo, 1922 +06/24 Ermordung von Reichsaußenminister Rathenau, 1922 +01/11 Besetzung des Ruhrgebietes durch Frankreich und Belgien, 1923 +09/10 Eintritt Deutschlands in den Völkerbund, 1926 +10/25 Schwarzer Freitag in New York, Beginn der Weltwirtschaftskrise, 1929 + + +/* II. Weltkrieg */ +10/14 Austritt Deutschlands aus dem Völkerbund, 1933 +03/16 Wiedereinführung der allgemeinen Wehrpflicht in Deutschland, 1935 +10/25 Deutsch-italienischer Vertrag, Achse Berlin-Rom, 1936 +11/25 Antikominternpakt zwischen Deutschland und Japan, 1936 +01/13 Volksabstimmung im Saargebiet über die Rückführung + ins deutsche Reich, 1935 +03/12 Einmarsch deutscher Truppen in Österreich, 1938 +09/29 Münchner Abkommen, 1938 +03/15 Einmarsch deutscher Truppen in die Tschechoslowakei, 1939 +03/23 Rückgabe des Memelgebietes an Deutschland, 1939 +08/23 Abschluß des Hitler-Stalin-Paktes, 1939 +09/03 Kriegserklärung Großbritaniens und Frankreichs an Deutschland, 1939 +04/09 Deutsche Besetzung Dänemarks, Invasion in Norwegen, 1940 +05/10 Deutscher Angriff auf Belgien, die Niederlande, Luxemburg + und Frankreich, 1940 +06/22 Deutscher Angriff gegen die Sowjetunion, 1941 +12/11 Kriegserklärung Deutschlands an die USA, 1941 +01/14 Konferenz von Casablanca, 1943 +01/31 Kapitulation der 6. deutschen Armee in Stalingrad, 1943 +06/06 Alliierte Landung in Nordwestfrankreich, 1944 +02/04 Konferenz von Jalta, 4.-11.2. 1945 +04/25 Zusammentreffen von amerikanischen und sowjetischen Truppen + bei Torgau an der Elbe, 1945 +05/08 Bedingungslose Kapitulation von Deutschland, 1945 +07/01 Rückzug britischer und amerikanischer Truppen aus Sachsen, Thüringen und + Mecklenburg, Einmarsch westlicher Truppen in Berlin, 1945 +07/17 Potsdamer Konferenz, 1945 +09/01 Deutscher Überfall auf Polen, Beginn des 2. Weltkrieges, 1939 +10/01 Verkündigung der Urteile im Nürnberger Hauptkriegsverbrecherprozeß, 1946 +02/25 Auflösung der Landes Preußen durch den Kontrollrat, 1947 +08/06 Erster Atombombenabwurf auf Hiroshima, 1945 +08/08 Atombombenabwurf auf Nagasaki, 1945 +04/19 Aufstand im Warschauer Ghetto, 1943 +12/07 Japan bombardiert Pearl Harbor, 1941 + +/* Deutschland nach dem 2. Weltkrieg */ +04/11 Attentat auf Dutschke, Studentenunruhen, 1968 +04/26 GAU in Tschernobyl, 1986 +05/05 Natobeitritt, Wiederbewaffnung, Souveränität der Bundesrepublik, 1955 +05/06 Rücktritt von Brandt, 1974 +05/16 Wahl von Schmidt (SPD) zum Bundeskanzler, 1974 +05/23 Verkündung des Grundgesetzes, 1949 +05/23 Wahl von Richard von Weizsäcker zum Bundespräsidenten, 1984 +06/05 Marshallplan, 1947 +06/20 Währungsreform in den Westzonen, 1948 +06/24 Beginn der Berliner Blockade, 1948 +07/01 Wahl von Heinrich Lübke zum Bundespräsidenten, 1959 +07/01 Wirtschafts- und Währungsunion, 1990 +08/12 Deutsch-sowjetischer Gewaltverzichtsvertrag, Moskau 1970 +08/14 Wahl zum ersten deutschen Bundestag, 1949 +09/03 Vier-Mächte-Abkommen über Berlin, 1971 +09/05 Entführung und Ermordung von Arbeitgeberpräsident Schleyer, + Entführung einer Lufthansa-Maschine nach Mogadischu, 1977 +09/07 DDR-Staatsratsvorsitzender Honecker in der Bundesrepublik, 1987 +09/12 Wahl von Theodor Heuss (FDP) zum Bundespräsidenten, 1949 +09/15 Wahl von Konrad Adenauer (CDU) zum Bundeskanzler, 1949 +09/17 Bruch der Sozialliberalen Koalition, 1982 +09/18 Aufnahme von Bundesrepublik und DDR in die UNO, 1973 +10/01 Ablösung von Bundeskanzler Schmidt durch Kohl, 1982 +10/23 Volksabstimmung im Saargebiet, 1955 +12/02 Washingtoner Abkommen über Bi-Zone, 1946 +12/07 Deutsch-polnischer Vertrag, Warschau 1970 +12/10 Friedensnobelpreis für Brandt, 1971 +12/12 Nachrüstungsbeschluß des NATO-Ministerates, 1979 +12/21 Grundlagenvertrag zwischen DDR und Bundesrepublik, 1972 + + +/* Nationalsozialismus */ +11/09 Hitler-Putsch in München/Marsch auf die Feldherrenhalle, 1923 +11/09 Reichskristallnacht, 1938 +09/14 Reichstagswahl: Erdrutsch zugunsten der NSDAP, 1930 +07/31 Reichstagswahl: NSDAP wird stärkste Fraktion, 1932 +11/06 Reichstagswahl: Rückgang der NSDAP, 1932 +01/30 Ernennung von Hitler zum Reichskanzler, 1933 +02/27 Reichstagsbrand, 1933 +03/05 Reichstagswahl: Mehrheit für NSDAP+DNVP, 1933 +03/23 Annahme des Ermächtigungsgesetzes, 1933 +03/31 Erstes Gesetz zur Gleichschaltung der Länder, 1933 +04/01 Organisierter Boykott jüdischer Geschäfte, 1933 +04/07 Zweites Gesetz zur Gleichschaltung der Länder, 1933 +05/02 Auflösung der Gewerkschaften, 1933 +06 Auflösung aller Parteien außer NSDAP, 1933 +07/20 Konkordat zwischen Deutschland und dem Vatikan, 1933 +06/30 Röhm-Putsch, Ausschaltung der SA-Führung, 1934 +09/15 Nürnberger Gesetze, 1935 +01/08 Eröffnung der olympischen Spiele in Berlin, 1936 +01/20 Wannseekonferenz, 1942 +04/30 Selbstmord Hitlers, 1945 +07/29 Mussolini geboren, 1883 + +/* Sozialismus */ +01/21 Lenin gestorben, 1924 +06 Gründung des Bundes der Kommunisten in London + durch Marx und Engels, 1847 +05/23 Gründung des Allgemeinen Deutschen Arbeitervereins in Leipzig + unter Führung von Ferdinand Lassalles, 1863 +08/07 Gründung der Sozialdemokratischen Arbeiterpartei in Eisenach + unter der Führung von August Bebel und Wilhelm Liebknecht, 1869 +04/06 Gründung der Unabhängigen Sozialdemokratischen Partei, Gotha 1917 +11/07 Oktoberrevolution in Rußland, Putsch der Bolschewisten, 1917 +12/31 Gründung der KPD, 1918 +01/15 Ermordung von Rosa Luxemburg und Karl Liebknecht, 1919 +03/05 Tod Stalins, 1953 +03/18 Erste demokratische Volkskammerwahl, 1990 +04/21 Zwangsvereinigung von KPD und SPD zur SED, 1946 +05/14 Gründung der Warschauer Paktes, 1955 +06/17 Arbeiteraufstand am 17. Juni 1953 +06/25 Begin der Korea-Krieges, 1950 +08/13 Bau der Berliner Mauer, 1961 +08/21 Einmarsch des Warschauer Pakts in die Tschechoslowakei, 1968 +10/03 Offizielles Ende der DDR :-), 1990 +10/07 Gründung der DDR, 1949 +10/09 Massendemonstration in Leipzig, 1989 +10/14 Kuba-Krise, 1962 +10/18 Ablösung von Erich Honecker als SED-Generalsekretär, 1989 +11/09 Fall der Berliner Mauer, 1989 +09/09 Mao Tse-Tung gestorben im Alter von 82 Jahren, 1976 +11/10 Sowjetischer Präsident Leonid Breschnew gestorben, Alter 75, 1982 +03/27 Chruschtschow wird sowjetischer Präsident, 1958 +10/12 Chruschtschow schlägt während einer Rede in der UNO mit den + Schuhen auf den Tisch, 1960 + +#endif /* _de_DE_ISO8859_1_geschichte_ */ diff --git a/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.kirche b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.kirche new file mode 100644 index 0000000..eba0fe3 --- /dev/null +++ b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.kirche @@ -0,0 +1,32 @@ +/* + * Kirche in Deutschland + * + * $FreeBSD: src/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.kirche,v 1.7 2001/06/11 03:06:13 ache Exp $ + */ + +#ifndef _de_DE_ISO8859_1_kirche_ +#define _de_DE_ISO8859_1_kirche_ + +LANG=de_DE.ISO8859-1 + +Easter-46 Aschermittwoch +Easter-48 Rosenmontag +Easter-7 Palmsonntag + +11/Sun-3 Volkstrauertag (maybe) +11/Sun-2 Volkstrauertag oder Totensonntag +11/Sun-1 1. Advent oder Totensonntag +12/Sun+1 1. oder 2. Advent +12/Sun+2 2. oder 3. Advent +12/Sun+3 3. oder 4. Advent +12/Sun+4 4. Advent (maybe) + +12/06 Nikolaus +12/25 1. Weihnachtstag +12/26 2. Weihnachtstag + +/* Evangelische Kirche */ +11/10 Martin Luther geboren in Eisleben, 1483 +10/31 95 Thesen von Luther, Wittenberg, 1517 + +#endif /* !_de_DE_ISO8859_1_kirche_ */ diff --git a/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.literatur b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.literatur new file mode 100644 index 0000000..db1f6bd --- /dev/null +++ b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.literatur @@ -0,0 +1,54 @@ +/* + * Literatur + * + * $FreeBSD: src/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.literatur,v 1.8 2003/10/06 01:17:42 grog Exp $ + */ + +#ifndef _de_DE_ISO8859_1_literatur_ +#define _de_DE_ISO8859_1_literatur_ + +LANG=de_DE.ISO8859-1 + +/* Schriftsteller + + Fontane + Goethe + Grass + Hegel + Heine + Schiller + */ + +01/04 Jakob Grimm geboren, 1785 +01/18 Arno Schmidt in Hamburg geboren, 1914 +02/09 Thomas Bernhard in Heerlen geboren, 1931 +02/12 Immanuel Kant in Königsberg gestorben, 1804 +02/12 Thomas Bernhard in Gmunden gestorben, 1989 +02/17 Heinrich Heine in Paris gestorben, 1856 +03/22 Johann Wolfgang von Goethe in Weimar gestorben, 1832 +04/22 Kant geboren, 1724 +05/09 Friedrich von Schiller in Weimar gestorben, 1805 +06/03 Arno Schmidt in Celle gestorben, 1979 +06/03 Franz Kafka in Prag gestorben, 1924 +06/06 Thomas Mann in Lübeck geboren, 1875 +07/03 Franz Kafka geboren, 1883 +08/12 Thomas Mann gestorben, 1955 +08/27 Georg Wilhelm Friedrich Hegel in Stuttgart geboren, 1770 +08/28 Johann Wolfgang von Goethe in Frankfurt am Main geboren, 1749 +09/20 Theodor Fontane in Berlin gestorben, 1898 +10/16 Günter Grass in Danzig geboren, 1927 +11/10 Friedrich von Schiller in Marbach geboren, 1759 +11/14 Georg Wilhelm Friedrich Hegel in Berlin gestorben, 1831 +12/13 Heinrich Heine in Düsseldorf geboren, 1797 +12/30 Theodor Fontane in Neuruppin geboren, 1819 + + +/* Verlage */ +03/09 "die tageszeitung" als erste täglich aktualisierte deutsche + Tageszeitung im WWW, 1995, Betatest, vollständige Ausgabe +05/05 Schweriner Volkszeitung als erste deutsche Tageszeitung im WWW, 1995 +05/12 "die tageszeitung" offiziell im WWW, 1995 +08/31 Hitler stellt Frankfurter Zeitung ein, 1943 +11/01 Frankfurter Allgemeine Zeitung in Leben gerufen, 1949 + +#endif /* !_de_DE_ISO8859_1_literatur_ */ diff --git a/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.musik b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.musik new file mode 100644 index 0000000..7dd5175 --- /dev/null +++ b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.musik @@ -0,0 +1,66 @@ +/* + * Musik + * + * $FreeBSD: src/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.musik,v 1.13 2006/10/24 23:18:07 grog Exp $ + */ + +#ifndef _de_DE_ISO8859_1_musik_ +#define _de_DE_ISO8859_1_musik_ + +LANG=de_DE.ISO8859-1 + +/* Barock */ +02/23 Georg Friedrich Händel in Halle an der Saale geboren, 1685 +03/14 Georg Philipp Telemann in Magdeburg geboren, 1681 +03/21 Johann Sebastian Bach in Eisenach geboren, 1685 +04/14 Georg Friedrich Händel in London gestorben, 1759 +06/25 Georg Philipp Telemann in Hamburg gestorben, 1767 +07/17 Diderich Buxtehude in Lübeck gestorben, 1707 +07/28 Johann Sebastian Bach in Leipzig gestorben, 1750 + +/* Klassik */ +01/27 Wolfgang Amadeus Mozart in Salzburg geboren, 1756 +01/31 Franz Schubert in Lichtenthal bei Wien geboren, 1797 +02/03 Felix Mendelssohn Bartholdy in Hamburg geboren, 1809 +02/13 Richard Wagner in Venedig gestorben, 1883 +03/01 Frederic Chopin in Zelazowa-Wola bei Warschau geboren, 1810 +03/08 (Louis) Hector Berlioz in Paris gestorben, 1869 +03/25 Bela Bartok in Nagyszentmiklos geboren, 1881 +03/26 Ludwig van Beethoven in Wien gestorben, 1827 +03/28 Sergej Rachmaninow in Beverley Hills gestorben, 1943 +03/29 Carl Orff in München gestorben, 1982 +03/31 Joseph Haydn in Rohrau geboren, 1732 +04/01 Sergej Rachmaninow in Oneg geboren, 1873 +04/03 Johannes Brahms in Wien gestorben, 1897 +05/07 Johannes Brahms in Hamburg geboren, 1833 +05/18 Gustav Mahler in Wien gestorben, 1911 +05/22 Richard Wagner in Leipzig geboren, 1813 +05/31 Joseph Haydn in Wien gestorben, 1809 +06/03 Georges Bizet in Bougival bei Paris gestorben, 1875 +06/05 Carl Maria von Weber in London gestorben, 1826 +06/08 Robert Schumann in Zwickau geboren, 1810 +06/11 Richard Strauss in München geboren, 1864 +06/15 Edvard Grieg in Bergen geboren, 1843 +07/07 Gustav Mahler in Kalischt geboren, 1860 +07/10 Carl Orff in München geboren, 1895 +07/29 Robert Schumann in Endenich bei Bonn gestorben, 1856 +07/31 Franz Liszt in Bayreuth gestorben, 1886 +09/04 Edvard Grieg in Bergen gestorben, 1907 +09/08 Richard Strauss in Garmisch-Partenkirchen gestorben, 1949 +09/26 Bela Bartok in New York gestorben, 1945 +10/17 Frederic Chopin in Paris gestorben, 1849 +10/22 Franz Liszt in Raiding (Ungarn) geboren, 1811 +10/25 Georges Bizet in Paris geboren, 1838 +11/04 Felix Mendelssohn Bartholdy in Leipzig gestorben, 1847 +11/18 Carl Maria von Weber in Eutin geboren, 1786 +11/19 Franz Schubert in Wien gestorben, 1828 +11/26 Paul Hindemith in Hanau geboren, 1895 +12/05 Wolfgang Amadeus Mozart in Wien gestorben, 1791 +12/11 (Louis) Hector Berlioz in La-Côte-Saint-André geboren, 1803 +12/17 Ludwig van Beethoven in Bonn getauft, 1770 +12/28 Paul Hindemith in Frankfurt am Main gestorben, 1963 + +/* Pop */ +09/18 Jimi Hendrix in Paris gestorben, 1970 + +#endif /* !_de_DE_ISO8859_1_musik_ */ diff --git a/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.wissenschaft b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.wissenschaft new file mode 100644 index 0000000..444d05b --- /dev/null +++ b/misc_cmds/calendar/calendars/de_DE.ISO8859-1/calendar.wissenschaft @@ -0,0 +1,19 @@ +/* + * Wissenschaft + * + * $FreeBSD: src/usr.bin/calendar/calendars/de_DE.ISO8859-1/calendar.wissenschaft,v 1.9 2003/10/15 08:18:59 tg Exp $ + */ + +#ifndef _de_DE_ISO8859_1_wissenschaft_ +#define _de_DE_ISO8859_1_wissenschaft_ + +LANG=de_DE.ISO8859-1 + +04/12 Erster Mann im All, Juri Gagarin, 1961 +04/18 Einstein gestorben, 1955 +06/22 Konrad Zuse geboren in Berlin, 1919 +10/04 Sputnik 1, erster Satellit im Weltraum, 1957 +12/18 Konrad Zuse gestorben in Hünfeld, 1995 + + +#endif /* ! _de_DE_ISO8859_1_wissenschaft_ */ diff --git a/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.all b/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.all new file mode 100644 index 0000000..9a706c0 --- /dev/null +++ b/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.all @@ -0,0 +1,14 @@ +/* + * Calendrier français + * + * $FreeBSD: src/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.all,v 1.1 2002/04/29 20:57:36 dwmalone Exp $ + */ + +#ifndef _fr_FR_ISO8859_1_all_ +#define _fr_FR_ISO8859_1_all_ + +#include +#include +#include + +#endif /* !_fr_FR.ISO8859-1_all_ */ diff --git a/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.fetes b/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.fetes new file mode 100644 index 0000000..7eb0183 --- /dev/null +++ b/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.fetes @@ -0,0 +1,630 @@ +/* + * Fêtes à souhaiter + * + * $FreeBSD: src/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.fetes,v 1.2 2006/04/13 12:14:44 flz Exp $ + */ + +#ifndef _fr_FR_ISO8859_1_fetes_ +#define _fr_FR_ISO8859_1_fetes_ + +LANG=fr_FR.ISO8859-1 + +/* + * N.B.: ceci n'est pas un calendrier liturgique ! + * Il a seulement été réalisé pour me faire payer à boire + * par mes collègues de travail ; on n'y trouve donc que + * des prénoms seuls. + * + * Par ex. « St Antoine de Padoue » se retrouve abrégé en + * Antoine, et si Antoine est fêté plusieurs jours par an, + * tant mieux pour lui, c'est voulu. + */ + +01/01 Aujourd'hui, c'est la St(e) Almaque. +01/01 N'oubliez pas les Télémaque ! +01/02 Bonne fête aux Basile ! +01/02 Aujourd'hui, c'est la St(e) Vassili. +01/02 N'oubliez pas les Grégoire ! +01/03 Bonne fête aux Geneviève ! +01/03 Aujourd'hui, c'est la St(e) Ginette. +01/04 N'oubliez pas les Odilon ! +01/04 Bonne fête aux Angèle ! +01/04 Aujourd'hui, c'est la St(e) Robert. +01/05 N'oubliez pas les Édouard ! +01/05 Bonne fête aux Gerlac ! +01/06 Aujourd'hui, c'est la St(e) Mélaine. +01/06 N'oubliez pas les André ! +01/07 Galette des rois +01/07 Aujourd'hui, c'est la St(e) Raymond. +01/07 N'oubliez pas les Raymonde ! +01/07 Bonne fête aux Virginie ! +01/08 Aujourd'hui, c'est la St(e) Lucien. +01/08 N'oubliez pas les Lucienne ! +01/08 Bonne fête aux Peggy ! +01/08 Aujourd'hui, c'est la St(e) Gudule. +01/09 N'oubliez pas les Adrien ! +01/09 Bonne fête aux Alix ! +01/10 Aujourd'hui, c'est la St(e) Guillaume. +01/10 N'oubliez pas les Guillemette ! +01/11 Bonne fête aux Paulin ! +01/11 Aujourd'hui, c'est la St(e) Pauline. +01/12 N'oubliez pas les Tatiana ! +01/12 Bonne fête aux Alfred ! +01/12 Aujourd'hui, c'est la St(e) Ailred (Aelred, Eilred, Elred). +01/13 N'oubliez pas les Vivant ! +01/13 Bonne fête aux Vivence ! +01/13 Aujourd'hui, c'est la St(e) Hilaire. +01/13 N'oubliez pas les Yvette ! +01/14 Bonne fête aux Nina ! +01/14 Aujourd'hui, c'est la St(e) Séraphin. +01/15 N'oubliez pas les Rémi ! +01/16 Bonne fête aux Marcel ! +01/16 Aujourd'hui, c'est la St(e) Marcelle. +01/16 N'oubliez pas les Marceau ! +01/16 Bonne fête aux Honorat ! +01/17 Aujourd'hui, c'est la St(e) Roseline. +01/17 N'oubliez pas les Antoine ! +01/17 Bonne fête aux Anthony ! +01/18 Aujourd'hui, c'est la St(e) Prisca. +01/18 N'oubliez pas les Libert ! +01/19 Bonne fête aux Marius ! +01/19 Aujourd'hui, c'est la St(e) Canut. +01/20 N'oubliez pas les Fabienne ! +01/20 Bonne fête aux Sébastien ! +01/20 Aujourd'hui, c'est la St(e) Bastien. +01/21 N'oubliez pas les Agnès ! +01/21 Bonne fête aux Fructueux ! +01/21 Aujourd'hui, c'est la St(e) Augure. +01/21 N'oubliez pas les Euloge ! +01/21 Bonne fête aux Avit ! +01/22 Aujourd'hui, c'est la St(e) Vincent. +01/22 N'oubliez pas les Blésille ! +01/23 Bonne fête aux Barnard ! +01/24 Aujourd'hui, c'est la St(e) François. +01/25 N'oubliez pas les Morgane ! +01/26 Bonne fête aux Paule ! +01/26 Aujourd'hui, c'est la St(e) Timothée. +01/26 N'oubliez pas les Tite ! +01/27 Bonne fête aux Angèle ! +01/28 Aujourd'hui, c'est la St(e) Thomas. +01/29 N'oubliez pas les Gildas ! +01/29 Bonne fête aux Sulpice ! +01/30 Aujourd'hui, c'est la St(e) Martine. +01/31 N'oubliez pas les Marcelle ! +01/31 Bonne fête aux Jean ! +02/01 Aujourd'hui, c'est la St(e) Ella. +02/01 N'oubliez pas les Viridiane ! +02/02 Bonne fête aux Théophane ! +02/03 Aujourd'hui, c'est la St(e) Blaise. +02/03 N'oubliez pas les Anschaire ! +02/04 Bonne fête aux Véronique ! +02/04 Aujourd'hui, c'est la St(e) Jeanne. +02/04 N'oubliez pas les Gilbert ! +02/05 Bonne fête aux Agathe ! +02/06 Aujourd'hui, c'est la St(e) Gaston. +02/06 N'oubliez pas les Armand ! +02/07 Bonne fête aux Eugénie ! +02/07 Aujourd'hui, c'est la St(e) Partène. +02/08 N'oubliez pas les Jacqueline ! +02/08 Bonne fête aux Jérôme ! +02/09 Aujourd'hui, c'est la St(e) Apolline. +02/09 N'oubliez pas les Appollonie ! +02/10 Bonne fête aux Arnaud ! +02/10 Aujourd'hui, c'est la St(e) Scholastique. +02/11 N'oubliez pas les Séverin ! +02/11 Bonne fête aux Séverine ! +02/12 Aujourd'hui, c'est la St(e) Félix. +02/12 N'oubliez pas les Eulalie ! +02/13 Bonne fête aux Béatrice ! +02/13 Aujourd'hui, c'est la St(e) Polyeucte. +02/14 N'oubliez pas les Valentin ! +02/14 Bonne fête aux Méthode ! +02/14 Aujourd'hui, c'est la St(e) Cyrille. +02/15 N'oubliez pas les Claude ! +02/15 Bonne fête aux Georgette ! +02/16 Aujourd'hui, c'est la St(e) Julienne. +02/17 N'oubliez pas les Alexis ! +02/18 Bonne fête aux Bernadette et aux Nadine ! +02/19 Aujourd'hui, c'est la St(e) Gabin. +02/20 N'oubliez pas les Aimée ! +02/20 Bonne fête aux Aimé ! +02/20 Aujourd'hui, c'est la St(e) Amata. +02/21 N'oubliez pas les Pierre-Damien ! +02/22 Bonne fête aux Isabelle ! +02/23 Aujourd'hui, c'est la St(e) Lazare. +02/23 N'oubliez pas les Polycarpe ! +02/24 Bonne fête aux Modeste ! +02/25 Aujourd'hui, c'est la St(e) Roméo. +02/25 N'oubliez pas les Avertan ! +02/26 Bonne fête aux Nestor ! +02/27 Aujourd'hui, c'est la St(e) Honorine. +02/27 N'oubliez pas les Gabriel ! +02/28 Bonne fête aux Romain ! +02/28 Aujourd'hui, c'est la St(e) Lupicin. +02/29 N'oubliez pas les Auguste ! +03/01 Bonne fête aux Aubin ! +03/01 Aujourd'hui, c'est la St(e) Albin. +03/02 N'oubliez pas les Charles ! +03/03 Bonne fête aux Guénolé (Gwénolé) ! +03/04 Aujourd'hui, c'est la St(e) Casimir. +03/05 N'oubliez pas les Olive ! +03/05 Bonne fête aux Olivia ! +03/06 Aujourd'hui, c'est la St(e) Colette. +03/06 N'oubliez pas les Nicole ! +03/07 Bonne fête aux Félicité ! +03/07 Aujourd'hui, c'est la St(e) Félicie. +03/07 N'oubliez pas les Perpétue ! +03/08 Bonne fête aux Jean ! +03/09 Aujourd'hui, c'est la St(e) Françoise. +03/10 N'oubliez pas les Vivien ! +03/10 Bonne fête aux Dominique ! +03/11 Aujourd'hui, c'est la St(e) Rosine. +03/12 N'oubliez pas les Justine ! +03/12 Bonne fête aux Maximilien ! +03/13 Aujourd'hui, c'est la St(e) Rodrigue. +03/13 N'oubliez pas les Salomon ! +03/13 Bonne fête aux Euphrasie ! +03/14 Aujourd'hui, c'est la St(e) Mathilde. +03/15 N'oubliez pas les Louise ! +03/16 Bonne fête aux Bénédicte ! +03/16 Aujourd'hui, c'est la St(e) Benoîte. +03/16 N'oubliez pas les Julien ! +03/17 C'est la St Patrick ! +03/17 Aujourd'hui, c'est la St(e) Patrice. +03/18 N'oubliez pas les Cyrille ! +03/19 Bonne fête aux Joseph ! +03/20 Aujourd'hui, c'est la St(e) Herbert. +03/20 N'oubliez pas les Wulfran ! +03/21 Bonne fête aux Clémence ! +03/22 Aujourd'hui, c'est la St(e) Léa. +03/23 N'oubliez pas les Victorien ! +03/23 Bonne fête aux Turibio ! +03/24 Aujourd'hui, c'est la St(e) Catherine. +03/24 N'oubliez pas les Karine ! +03/26 Bonne fête aux Lara ! +03/26 Aujourd'hui, c'est la St(e) Ludger. +03/26 N'oubliez pas les Larissa ! +03/27 Bonne fête aux Habib ! +03/28 Aujourd'hui, c'est la St(e) Gontran. +03/29 N'oubliez pas les Gwladys ! +03/29 Bonne fête aux Eustase ! +03/30 Aujourd'hui, c'est la St(e) Amédée. +03/31 N'oubliez pas les Benjamin ! +03/31 Bonne fête aux Benjamine ! +04/01 Votre fichier calendar est corrompu. +04/01 N'oubliez pas les Hugues ! +04/02 Bonne fête aux Sandrine ! +04/03 Aujourd'hui, c'est la St(e) Richard. +04/04 N'oubliez pas les Isidore ! +04/04 Bonne fête aux Benoît ! +04/05 Aujourd'hui, c'est la St(e) Irène. +04/05 N'oubliez pas les Vincent ! +04/06 Bonne fête aux Marcellin ! +04/06 Aujourd'hui, c'est la St(e) Célestin. +04/06 N'oubliez pas les Guillaume ! +04/07 Bonne fête aux Jean-Baptiste ! +04/07 Aujourd'hui, c'est la St(e) Julienne. +04/08 N'oubliez pas les Perpet ! +04/08 Bonne fête aux Perpetuus ! +04/09 Aujourd'hui, c'est la St(e) Gautier. +04/09 N'oubliez pas les Jean ! +04/10 Bonne fête aux Fulbert ! +04/10 Aujourd'hui, c'est la St(e) Michel. +04/11 N'oubliez pas les Stanislas ! +04/11 Bonne fête aux Gemma ! +04/11 Aujourd'hui, c'est la St(e) Léon. +04/12 N'oubliez pas les Jules ! +04/12 Bonne fête aux Sabas ! +04/13 Aujourd'hui, c'est la St(e) Ida. +04/13 N'oubliez pas les Herménégilde ! +04/14 Bonne fête aux Maxime ! +04/14 Aujourd'hui, c'est la St(e) Lydwine. +04/14 N'oubliez pas les Bénézet ! +04/15 Bonne fête aux Pierre ! +04/16 Aujourd'hui, c'est la St(e) Benoît. +04/17 N'oubliez pas les Anicet ! +04/17 Bonne fête aux Kateri ! +04/18 Aujourd'hui, c'est la St(e) Parfait. +04/19 N'oubliez pas les Emma ! +04/19 Bonne fête aux Elphège ! +04/20 Aujourd'hui, c'est la St(e) Odette. +04/20 N'oubliez pas les Agnès ! +04/21 Bonne fête aux Anselme ! +04/22 Aujourd'hui, c'est la St(e) Alexandre. +04/22 N'oubliez pas les Soter ! +04/22 Bonne fête aux Caïus ! +04/22 Aujourd'hui, c'est la St(e) Léonide. +04/23 N'oubliez pas les Georges ! +04/23 Bonne fête aux Pierre ! +04/24 Aujourd'hui, c'est la St(e) Fidèle. +04/24 N'oubliez pas les Marie-Euphrasie ! +04/25 Bonne fête aux Marc ! +04/26 Aujourd'hui, c'est la St(e) Alida. +04/27 N'oubliez pas les Zita ! +04/27 Bonne fête aux Pierre ! +04/28 Aujourd'hui, c'est la St(e) Valérie. +04/28 N'oubliez pas les Louis-Marie ! +04/28 Bonne fête aux Paul ! +04/29 Aujourd'hui, c'est la St(e) Joseph-Benoît. +04/29 N'oubliez pas les Hugues ! +04/30 Bonne fête aux Robert ! +04/30 Aujourd'hui, c'est la St(e) Catherine. +05/02 N'oubliez pas les Boris ! +05/03 Bonne fête aux Jacques ! +05/03 Aujourd'hui, c'est la St(e) Philippe. +05/04 N'oubliez pas les Sylvain ! +05/05 Bonne fête aux Judith ! +05/06 Aujourd'hui, c'est la St(e) Prudence. +05/07 N'oubliez pas les Gisèle ! +05/09 Bonne fête aux Pacôme ! +05/10 Aujourd'hui, c'est la St(e) Solange. +05/11 N'oubliez pas les Estelle ! +05/12 Bonne fête aux Achille ! +05/14 Aujourd'hui, c'est la St(e) Matthias. +05/15 N'oubliez pas les Denise ! +05/16 Bonne fête aux Honoré ! +05/17 Aujourd'hui, c'est la St(e) Pascal. +05/18 N'oubliez pas les Éric ! +05/19 Bonne fête aux Yves ! +05/19 Aujourd'hui, c'est la St(e) Yvonne. +05/20 N'oubliez pas les Bernardin ! +05/21 Bonne fête aux Constantin ! +05/22 Aujourd'hui, c'est la St(e) Émile. +05/23 N'oubliez pas les Didier ! +05/24 Bonne fête aux Donatien ! +05/25 Aujourd'hui, c'est la St(e) Sophie. +05/26 N'oubliez pas les Bérenger ! +05/28 Bonne fête aux Germain ! +05/29 Aujourd'hui, c'est la St(e) Aymard. +05/30 N'oubliez pas les Ferdinand ! +06/01 Bonne fête aux Justin ! +06/02 Aujourd'hui, c'est la St(e) Blandine. +06/03 N'oubliez pas les Kévin ! +06/04 Bonne fête aux Clotilde ! +06/05 Aujourd'hui, c'est la St(e) Igor. +06/06 N'oubliez pas les Norbert ! +06/07 Bonne fête aux Gilbert ! +06/08 Aujourd'hui, c'est la St(e) Médard. +06/09 N'oubliez pas les Diane ! +06/11 Bonne fête aux Barnabé ! +06/11 Aujourd'hui, c'est la St(e) Yolande. +06/12 N'oubliez pas les Guy ! +06/13 Bonne fête aux Antoine ! +06/14 Aujourd'hui, c'est la St(e) Élisée. +06/15 N'oubliez pas les Germaine ! +06/16 Bonne fête aux Jean-François ! +06/17 Aujourd'hui, c'est la St(e) Hervé. +06/18 N'oubliez pas les Léonce ! +06/19 Bonne fête aux Romuald ! +06/20 Aujourd'hui, c'est la St(e) Silvère. +06/21 N'oubliez pas les Rodolphe ! +06/22 Bonne fête aux Alban ! +06/23 Aujourd'hui, c'est la St(e) Audrey. +06/24 N'oubliez pas les Jean-Baptiste ! +06/25 Bonne fête aux Prosper ! +06/26 Aujourd'hui, c'est la St(e) Anthelme. +06/27 N'oubliez pas les Fernand ! +06/28 Bonne fête aux Irénée ! +06/29 Aujourd'hui, c'est la St(e) Paul. +06/29 N'oubliez pas les Pierre ! +06/30 Bonne fête aux Martial ! +07/01 Aujourd'hui, c'est la St(e) Thierry. +07/02 N'oubliez pas les Martinien ! +07/03 Bonne fête aux Thomas ! +07/04 Aujourd'hui, c'est la St(e) Florent. +07/05 N'oubliez pas les Antoine ! +07/06 Bonne fête aux Mariette ! +07/07 Aujourd'hui, c'est la St(e) Raoul. +07/08 N'oubliez pas les Thibaut ! +07/09 Bonne fête aux Amandine ! +07/10 Aujourd'hui, c'est la St(e) Ulrich. +07/11 N'oubliez pas les Benoît ! +07/12 Bonne fête aux Olivier ! +07/13 Aujourd'hui, c'est la St(e) Henri. +07/13 N'oubliez pas les Joël ! +07/14 Bonne fête aux Camille ! +07/15 Aujourd'hui, c'est la St(e) Donald. +07/17 N'oubliez pas les Caroline ! +07/17 Bonne fête aux Charlotte ! +07/18 Aujourd'hui, c'est la St(e) Frédéric. +07/19 N'oubliez pas les Arsène ! +07/20 Bonne fête aux Marina ! +07/21 Aujourd'hui, c'est la St(e) Victor. +07/22 N'oubliez pas les Marie-Madeleine ! +07/23 Bonne fête aux Brigitte ! +07/24 Aujourd'hui, c'est la St(e) Christine. +07/25 N'oubliez pas les Jacques ! +07/26 Bonne fête aux Anne ! +07/26 Aujourd'hui, c'est la St(e) Joachim. +07/27 N'oubliez pas les Nathalie ! +07/28 Bonne fête aux Samson ! +07/29 Aujourd'hui, c'est la St(e) Marthe. +07/30 N'oubliez pas les Juliette ! +07/31 Bonne fête aux Ignace ! +08/01 Aujourd'hui, c'est la St(e) Alphonse. +08/01 N'oubliez pas les Pierre ! +08/02 Bonne fête aux Julien ! +08/03 Aujourd'hui, c'est la St(e) Lydie. +08/03 N'oubliez pas les Pierre-Julien ! +08/04 Bonne fête aux Jean-Marie ! +08/04 Aujourd'hui, c'est la St(e) Dominique. +08/05 N'oubliez pas les Abel ! +08/05 Bonne fête aux Oswald ! +08/07 Aujourd'hui, c'est la St(e) Gaëtan. +08/08 N'oubliez pas les Dominique ! +08/08 Bonne fête aux Cyriaque ! +08/09 Aujourd'hui, c'est la St(e) Amour. +08/10 N'oubliez pas les Laurent ! +08/11 Bonne fête aux Claire ! +08/11 Aujourd'hui, c'est la St(e) Philomène. +08/12 N'oubliez pas les Clarisse ! +08/13 Bonne fête aux Hyppolite ! +08/13 Aujourd'hui, c'est la St(e) Radegonde. +08/14 N'oubliez pas les Évrard ! +08/14 Bonne fête aux Maximilien ! +08/15 Aujourd'hui, c'est la St(e) Marie. +08/16 N'oubliez pas les Armel ! +08/16 Bonne fête aux Roch ! +08/17 Aujourd'hui, c'est la St(e) Hyacinthe. +08/18 N'oubliez pas les Hélène ! +08/19 Bonne fête aux Jean-Eudes ! +08/19 Aujourd'hui, c'est la St(e) Louis. +08/20 N'oubliez pas les Bernard ! +08/21 Bonne fête aux Christophe ! +08/21 Aujourd'hui, c'est la St(e) Jeanne. +08/22 N'oubliez pas les Fabrice ! +08/22 Bonne fête aux Symphorien ! +08/23 Aujourd'hui, c'est la St(e) Rose. +08/23 N'oubliez pas les Philippe ! +08/24 Bonne fête aux Barthélémy ! +08/25 Aujourd'hui, c'est la St(e) Louis. +08/26 N'oubliez pas les Natacha ! +08/26 Bonne fête aux Zéphirin ! +08/26 Aujourd'hui, c'est la St(e) Eulade. +08/27 N'oubliez pas les Edwige ! +08/27 Bonne fête aux Joseph ! +08/28 Aujourd'hui, c'est la St(e) Augustin. +08/29 N'oubliez pas les Sabine ! +08/30 Bonne fête aux Fiacre ! +08/30 Aujourd'hui, c'est la St(e) Rose. +08/31 N'oubliez pas les Aristide ! +08/31 Bonne fête aux Raymond ! +09/01 Aujourd'hui, c'est la St(e) Gilles. +09/02 N'oubliez pas les Ingrid ! +09/03 Bonne fête aux Grégoire ! +09/04 Aujourd'hui, c'est la St(e) Rosalie. +09/05 N'oubliez pas les Raïssa ! +09/06 Bonne fête aux Bertrand ! +09/07 Aujourd'hui, c'est la St(e) Reine. +09/09 N'oubliez pas les Alain ! +09/10 Bonne fête aux Inès ! +09/11 Aujourd'hui, c'est la St(e) Adelphe. +09/12 N'oubliez pas les Apollinaire ! +09/13 Bonne fête aux Aimé ! +09/15 Aujourd'hui, c'est la St(e) Roland. +09/16 N'oubliez pas les Édith ! +09/17 Bonne fête aux Renaud ! +09/18 Aujourd'hui, c'est la St(e) Nadège. +09/19 N'oubliez pas les Émilie ! +09/20 Bonne fête aux Davy ! +09/21 Aujourd'hui, c'est la St(e) Matthieu. +09/22 N'oubliez pas les Maurice ! +09/23 Bonne fête aux Constant ! +09/24 Aujourd'hui, c'est la St(e) Thècle. +09/25 N'oubliez pas les Hermann ! +09/26 Bonne fête aux Côme ! +09/26 Aujourd'hui, c'est la St(e) Damien. +09/27 N'oubliez pas les Vincent ! +09/28 Bonne fête aux Venceslas ! +09/29 Aujourd'hui, c'est la St(e) Michel. +09/29 N'oubliez pas les Raphaël ! +09/30 Bonne fête aux Jérôme ! +10/01 Aujourd'hui, c'est la St(e) Thérèse. +10/02 N'oubliez pas les Léger ! +10/03 Bonne fête aux Gérard ! +10/04 Aujourd'hui, c'est la St(e) François. +10/05 N'oubliez pas les Placide ! +10/05 Bonne fête aux Fleur ! +10/05 Aujourd'hui, c'est la St(e) Flore. +10/05 N'oubliez pas les Pâquerette ! +10/05 Bonne fête aux Violette ! +10/05 Aujourd'hui, c'est la St(e) Pervenche. +10/05 N'oubliez pas les Anémone ! +10/05 Bonne fête aux Bluette ! +10/05 Aujourd'hui, c'est la St(e) Capucine. +10/05 N'oubliez pas les Dahlia ! +10/05 Bonne fête aux Myrtille ! +10/05 Aujourd'hui, c'est la St(e) Hortense. +10/05 N'oubliez pas les Violaine ! +10/05 Bonne fête aux Anne-Aymone ! +10/05 Aujourd'hui, c'est la St(e) Dalie. +10/06 N'oubliez pas les Bruno ! +10/06 Bonne fête aux Foy ! +10/07 Aujourd'hui, c'est la St(e) Serge. +10/08 N'oubliez pas les Pélagie ! +10/26 Bonne fête aux Démétrius ! +10/09 Aujourd'hui, c'est la St(e) Denis. +10/09 N'oubliez pas les Denys ! +10/10 Bonne fête aux Ghislain ! +10/10 Aujourd'hui, c'est la St(e) Ghislaine. +10/10 N'oubliez pas les Guislain ! +10/10 Bonne fête aux Guislaine ! +10/11 Aujourd'hui, c'est la St(e) Firmin. +10/11 N'oubliez pas les Gausbert ! +10/12 Bonne fête aux Wilfried ! +10/12 Aujourd'hui, c'est la St(e) Séraphin. +10/13 N'oubliez pas les Géraud ! +10/14 Bonne fête aux Juste ! +10/14 Aujourd'hui, c'est la St(e) Calliste. +10/15 N'oubliez pas les Thérèse ! +10/16 Bonne fête aux Edwige ! +10/16 Aujourd'hui, c'est la St(e) Marie-Marguerite. +10/17 N'oubliez pas les Baudoin ! +10/17 Bonne fête aux Ignace ! +10/18 Aujourd'hui, c'est la St(e) Luc. +10/19 N'oubliez pas les René ! +10/20 Bonne fête aux Adeline ! +10/20 Aujourd'hui, c'est la St(e) Aline. +10/20 N'oubliez pas les Line ! +10/21 Bonne fête aux Céline ! +10/21 Aujourd'hui, c'est la St(e) Hilarion. +10/22 N'oubliez pas les Élodie ! +10/22 Bonne fête aux Nunillon ! +10/22 Aujourd'hui, c'est la St(e) Salomé. +10/23 N'oubliez pas les Jean ! +10/24 Bonne fête aux Florentin ! +10/25 Aujourd'hui, c'est la St(e) Crépin. +10/25 N'oubliez pas les Crépinien ! +10/25 Bonne fête aux Chrysanthe ! +10/25 Aujourd'hui, c'est la St(e) Darie. +10/25 N'oubliez pas les Enguerran ! +10/26 Bonne fête aux Dimitri ! +10/26 Aujourd'hui, c'est la St(e) Évariste. +10/27 N'oubliez pas les Émeline ! +10/27 Bonne fête aux Didier ! +10/27 Aujourd'hui, c'est la St(e) Frumence. +10/28 N'oubliez pas les Jude ! +10/28 Bonne fête aux Judas ! +10/28 Aujourd'hui, c'est la St(e) Thaddée. +10/28 N'oubliez pas les Simon ! +10/28 Bonne fête aux Simone (Simonne) ! +10/29 Aujourd'hui, c'est la St(e) Narcisse. +10/30 N'oubliez pas les Bienvenue ! +10/30 Bonne fête aux Dorothée ! +10/31 Aujourd'hui, c'est la St(e) Quentin. +10/31 N'oubliez pas les Alphonse ! +10/31 Bonne fête aux Wolfgang ! +11/03 Aujourd'hui, c'est la St(e) Hubert. +11/04 N'oubliez pas les Charles ! +11/04 Bonne fête aux Amans ! +11/05 Aujourd'hui, c'est la St(e) Sylvie. +11/05 N'oubliez pas les Sylvette ! +11/05 Bonne fête aux Sylviane ! +11/05 Aujourd'hui, c'est la St(e) Zacharie. +11/05 N'oubliez pas les Élisabeth ! +11/06 Bonne fête aux Bertille ! +11/06 Aujourd'hui, c'est la St(e) Léonard. +11/06 N'oubliez pas les Winnoc ! +11/07 Bonne fête aux Carine ! +11/07 Aujourd'hui, c'est la St(e) Karine. +11/07 N'oubliez pas les Ernest ! +11/07 Bonne fête aux Ernst ! +11/07 Aujourd'hui, c'est la St(e) Willibrord. +11/08 N'oubliez pas les Geoffroy ! +11/09 Bonne fête aux Théodore ! +11/10 Aujourd'hui, c'est la St(e) Léon. +11/10 N'oubliez pas les Léontine ! +11/10 Bonne fête aux Lionel ! +11/11 Aujourd'hui, c'est la St(e) Martin. +11/12 N'oubliez pas les Christian ! +11/12 Bonne fête aux Josaphat ! +11/13 Aujourd'hui, c'est la St(e) Brice. +11/13 N'oubliez pas les Diégo ! +11/13 Bonne fête aux Didace ! +11/14 Aujourd'hui, c'est la St(e) Sidoine. +11/14 N'oubliez pas les Sidonie ! +11/14 Bonne fête aux Sérapion ! +11/15 Aujourd'hui, c'est la St(e) Albert. +11/16 N'oubliez pas les Marguerite ! +11/16 Bonne fête aux Gertrude ! +11/17 Aujourd'hui, c'est la St(e) Élisabeth. +11/17 N'oubliez pas les Élise ! +11/17 Bonne fête aux Lise ! +11/18 Aujourd'hui, c'est la St(e) Aude. +11/19 N'oubliez pas les Tanguy ! +11/19 Bonne fête aux Tanneguy ! +11/19 Aujourd'hui, c'est la St(e) Mechtilde. +11/19 N'oubliez pas les Mathilde ! +11/19 Bonne fête aux Patrocle ! +11/20 Aujourd'hui, c'est la St(e) Edmond. +11/20 N'oubliez pas les Octave ! +11/20 Bonne fête aux Adventor ! +11/20 Aujourd'hui, c'est la St(e) Solutor. +11/20 N'oubliez pas les Ambroise ! +11/20 Bonne fête aux Rutus ! +11/22 Aujourd'hui, c'est la St(e) Cécile. +11/22 N'oubliez pas les Célia ! +11/23 Bonne fête aux Clément ! +11/23 Aujourd'hui, c'est la St(e) Clémentine. +11/23 N'oubliez pas les Colomban ! +11/24 Bonne fête aux Augusta ! +11/24 Aujourd'hui, c'est la St(e) Flora. +11/25 N'oubliez pas les Catherine ! +11/24 Bonne fête aux Maria ! +11/26 Aujourd'hui, c'est la St(e) Delphine. +11/26 N'oubliez pas les Elzéar ! +11/27 Bonne fête aux Séverin ! +11/27 Aujourd'hui, c'est la St(e) Séverine. +11/27 N'oubliez pas les Maxime ! +11/28 Bonne fête aux Jacques ! +11/29 Aujourd'hui, c'est la St(e) Saturnin. +11/29 N'oubliez pas les Sernin (Cernin) ! +11/29 Bonne fête aux Savourin ! +11/29 Aujourd'hui, c'est la St(e) Sornin. +11/30 N'oubliez pas les André ! +11/30 Bonne fête aux Andréa ! +12/01 Aujourd'hui, c'est la St(e) Florence. +12/01 N'oubliez pas les Éloi ! +12/01 Bonne fête aux Airy ! +12/02 Aujourd'hui, c'est la St(e) Viviane. +12/03 N'oubliez pas les François-Xavier ! +12/03 Bonne fête aux Xavier ! +12/03 Aujourd'hui, c'est la St(e) Eugène. +12/04 N'oubliez pas les Barbara ! +12/04 Bonne fête aux Barbe ! +12/05 Aujourd'hui, c'est la St(e) Gérald. +12/05 N'oubliez pas les Géraldine ! +12/05 Bonne fête aux Géraud ! +12/05 Aujourd'hui, c'est la St(e) Sabas. +12/06 N'oubliez pas les Nicolas ! +12/07 Bonne fête aux Ambroise ! +12/09 Aujourd'hui, c'est la St(e) Pierre. +12/10 N'oubliez pas les Romaric ! +12/10 Bonne fête aux Eulalie ! +12/10 Aujourd'hui, c'est la St(e) Melchaide. +12/10 N'oubliez pas les Miltiade ! +12/11 Bonne fête aux Daniel ! +12/11 Aujourd'hui, c'est la St(e) Damase. +12/12 N'oubliez pas les Chantal ! +12/13 Bonne fête aux Lucie ! +12/13 Aujourd'hui, c'est la St(e) Rolande. +12/13 N'oubliez pas les Aurore ! +12/14 Bonne fête aux Odile ! +12/15 Aujourd'hui, c'est la St(e) Ninon. +12/15 N'oubliez pas les Nina ! +12/15 Bonne fête aux Christiane ! +12/15 Aujourd'hui, c'est la St(e) Christina. +12/16 N'oubliez pas les Alice ! +12/16 Bonne fête aux Adélaïde ! +12/16 Aujourd'hui, c'est la St(e) Évrard. +12/16 N'oubliez pas les Éberhard ! +12/17 Bonne fête aux Gaël ! +12/17 Aujourd'hui, c'est la St(e) Lazare. +12/17 N'oubliez pas les Olympe ! +12/17 Bonne fête aux Olympias ! +12/17 Aujourd'hui, c'est la St(e) Judicaël. +12/18 N'oubliez pas les Gatien ! +12/18 Bonne fête aux Winebald ! +12/19 Aujourd'hui, c'est la St(e) Urbain. +12/20 N'oubliez pas les Abraham ! +12/20 Bonne fête aux Théophile ! +12/21 Aujourd'hui, c'est la St(e) Pierre. +12/22 N'oubliez pas les Françoise-Xavière ! +12/22 Bonne fête aux Flavien ! +12/23 Aujourd'hui, c'est la St(e) Armand. +12/24 N'oubliez pas les Adèle ! +12/24 Bonne fête aux Charbel ! +12/25 Aujourd'hui, c'est la St(e) Emmanuel. +12/25 N'oubliez pas les Emmanuelle ! +12/25 Bonne fête aux Noël ! +12/26 Aujourd'hui, c'est la St(e) Étienne. +12/26 N'oubliez pas les Stéphane ! +12/26 Bonne fête aux Stéphanie ! +12/27 Aujourd'hui, c'est la St(e) Jean. +12/27 N'oubliez pas les Yann ! +12/28 Bonne fête aux Innocents ! +12/29 Aujourd'hui, c'est la St(e) David. +12/30 N'oubliez pas les Roger ! +12/31 Bonne fête aux Sylvestre ! + +#endif /*! _fr_FR_ISO8859_1_fetes */ diff --git a/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.french b/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.french new file mode 100644 index 0000000..823aef4 --- /dev/null +++ b/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.french @@ -0,0 +1,12 @@ +/* + * French calendar file(s) + * + * $FreeBSD: src/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.french,v 1.1 2002/04/29 20:57:36 dwmalone Exp $ + */ + +#ifndef _calendar_french_ +#define _calendar_french_ + +#include + +#endif /* !_calendar_french_ */ diff --git a/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.jferies b/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.jferies new file mode 100644 index 0000000..21d1f0c --- /dev/null +++ b/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.jferies @@ -0,0 +1,46 @@ +/* + * Jours fériés + * + * $FreeBSD: src/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.jferies,v 1.2 2006/04/13 12:14:44 flz Exp $ + */ + +#ifndef _fr_FR_ISO8859_1_jferies_ +#define _fr_FR_ISO8859_1_jferies_ + +LANG=fr_FR.ISO8859-1 + +/* Jours chômés */ +01/01 Nouvel an +05/01 Fête du travail +05/08 Armistice 1945 +07/14 Fête nationale française +11/11 Armistice 1918 + +/* Jours fériés religieux */ +Easter Pâques +Easter+1 Lundi de Pâques +Easter+39 Ascension +Easter+49 Pentecôte +Easter+50 Lundi de Pentecôte +08/15 Assomption +11/01 Toussaint +12/25 Noël + +/* Les dates suivantes ne sont malheureusement pas fériées... */ + +/* Saisons */ +03/21* Printemps +06/21* Été +09/21* Automne +12/21* Hiver + +/* Changements d'heure */ +03/SundayLast Passage à l'heure d'été +10/SundayLast Passage à l'heure d'hiver + +/* Divers */ +/* BUG : si Penteco^te = 05/SunLast, fe^te des me`res repousse'e d'une semaine */ +05/SundayLast Fêtes des mères +June Sun+3 Fêtes des pères + +#endif /*! _fr_FR_ISO8859_1_jferies_ */ diff --git a/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.proverbes b/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.proverbes new file mode 100644 index 0000000..40c6414 --- /dev/null +++ b/misc_cmds/calendar/calendars/fr_FR.ISO8859-1/calendar.proverbes @@ -0,0 +1,354 @@ +/* + * Proverbes liés au calendrier + * + * $FreeBSD: src/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.proverbes,v 1.1 2002/04/29 20:57:36 dwmalone Exp $ + */ + +#ifndef _fr_FR_ISO8859_1_proverbes_ +#define _fr_FR_ISO8859_1_proverbes_ + +LANG=fr_FR.ISO8859-1 + +/* Janvier */ +01/01 Calme et claire nuit de l'an + À bonne année donne l'élan. +01/02 Janvier d'eau chiche + Fait le paysan riche. +01/04 Un mois de janvier sans gelée + N'amène jamais une bonne année. +01/06 Pluie aux Rois, + Blé jusqu'au toit. +01/08 Janvier sec et sage + Est un bon présage. +01/09 Saint Julien brise la glace ; + S'il ne la brise, c'est qu'il l'embrasse. +01/10 Beau temps à la saint Guillaume + Donne plus de blé que de chaume. +01/13 Soleil au jour de saint Hilaire, + Fends du bois pour ton hiver. +01/14 Pingouin dans les champs, + Hiver méchant. +01/15 S'il gèle à la saint Maur, + La moitié de l'hiver est dehors. +01/18 À la saint Pierre, + L'hiver s'en va ou se resserre. +01/20 S'il gèle à la saint Sébastien, + L'hiver s'en va ou revient. +01/22 Pour saint Vincent, + L'hiver perd ses dents + Ou les retrouve pour longtemps. +01/24 S'il tonne en janvier, + Monte les barriques au grenier. +01/25 Le jour de saint Paul, + L'hiver se rompt le col. +01/31 Janvier fait le péché, + Mars en est accusé. + +/* Février */ +02/01 À la saint Ignace, + L'eau est de glace. +02/02 Chandeleur claire, hiver derrière ; + Chandeleur trouble, hiver redouble. +02/03 À la saint Blaise, + L'hiver s'apaise, + Mais s'il redouble et s'il reprend, + Longtemps après on s'en ressent. +02/05 Pour la sainte Agathe, sème ton oignon, + Fût-il dans la glace, il deviendra bon. +02/09 À la sainte Apolline + Bien souvent l'hiver nous quitte. +02/12 Si le soleil rit à la sainte Eulalie, + Pommes et cidre à la folie. +02/14 À la saint Valentin, + Tous les vents sont marins. +02/16 Pluie de février + À la terre vaut du fumier. +02/18 Février trop doux, + Printemps en courroux. +02/20 La neige de février + Brûle le blé. +02/22 Neige à la sainte Isabelle + Fait la fleur plus belle. +02/24 Saint Mathias + Casse la glace ; + S'il n'y en a pas, + Il en fera. +02/27 Gelée de la sainte Honorine + Rend toute la vallée chagrine. +02/28 Fleur de février + Va mal au pommier. + +/* Mars */ +03/01 Taille à la saint Aubin + Donnera de gros raisins. +03/02 Quand mars mouillera, + Bien du vin tu auras. +03/03 Soit au début, soit à la fin, + Mars nous montre son venin. +03/06 À la sainte Colette + Commence à chanter l'alouette. +03/08 Quand en mars il tonne, + L'année sera bonne. +03/10 Mars venteux, + Vergers pommeux. +03/12 À la saint Grégoire, + Il faut tailler la vigne pour boire. +03/13 Poussière de mars + Est poussière d'or... +03/15 Pluie de mars grandit l'herbette + Et souvent annonce disette. +03/17 S'il fait doux à la saint Patrice, + De leurs trous sortent les écrevisses. +03/19 Pour saint Joseph, + L'hirondelle va et vient. +03/21 S'il pleut à la saint Benoît, + Il pleut trente-sept jours plus trois. +03/23 Quand à glace il gèle à la saint Victorien, + En pêches et en abricots il n'y a rien. +03/25 Quand fleurs en mars il y aura, + Guère de fruits ne mangeras. +03/28 À la saint Gontran, si la température est belle, + Arrivent les premières hirondelles. +03/30 Quand mars se déguise en été, + Avril prend ses habits fourrés. +03/31 À la saint Benjamin, + Le mauvais temps prend fin. + +/* Mobiles */ +Easter-7 Le propre jour des Rameaux + Sème oignons et poireaux. +Easter-3 La gelée du jeudi saint + Gèle le sarrasin. +Easter-2 Gelée du vendredi saint + Gèle le pain et le vin. +Easter S'il pleut à Pâques, + Il pleut pendant quarante jours. +Easter Pâques en mars, + Pestes, guerres ou famines. +Easter+36 Haricots de rogations + Rendent à foison. +Easter+37 Belles rogations, + Belles moissons. +Easter+39 S'il pleut à l'Ascension, + Tout va en perdition. +Easter+49 La Pentecôte + Donne les fruits, ou les ôte. +Easter+56 S'il pleut à la Trinité, + Il pleut tous les jours de l'année. + +/* Avril */ +04/01 Avril entrant, + Coucou chantant, + Sonnailles tintant. +04/05 Avril fait la fleur, + Mai en a l'honneur. +04/10 Il n'est point d'avril si beau + Qu'il n'ait de neige à son chapeau. +04/15 En avril, ne te découvre pas d'un fil ; + En mai, fais ce qu'il te plaît ; + En juin, de trois habits n'en garde qu'un. +04/17 Orage en avril, + Prépare tes barrils. +04/19 À la sainte Léonide + Chaque blé pousse rapide. +04/22 Pluie à la sainte Opportune, + Ni cerises ni prunes. +04/23 À la saint Georges, + Sème ton orge, + À la saint Marc, + Il est trop tard. +04/25 À la saint Marc, s'il tombe de l'eau, + Il n'y aura pas de fruits à couteau. +04/28 Avril pluvieux et mai venteux + Ne rendent pas le paysan disetteux. +04/30 La pluie à la saint Robert + De bon vin emplira ton verre. + +/* Mai */ +05/03 Les trois saints au sang de navet, + Pancrace, Mamert et Servais, + Sont bien nommés les saints de glace, + Mamert, Servais et Pancrace. +05/15 À la sainte Denise, + Le froid n'en fait plus à sa guise. +05/16 À la saint Honoré, + S'il fait gelée, + Le vin diminue de moitié. +05/18 Bon fermier à sainte Juliette + Doit vendre ses poulettes. +05/22 Beau temps à la sainte Émilie + Donne du fruit à la folie. +05/23 Qui sème haricots à la saint Didier + Les arrachera à poignées. + +/* Juin */ +06/08 S'il pleut à la saint Médard, + Il pleut quarante jours plus tard, + À moins que saint Barnabé + Ne vienne l'arrêter. +06/11 À la saint Barnabé, + Fauche ton pré. +06/16 Si le jour de saint Fargeau + La lune se fait dans l'eau, + Le reste du mois est beau. +06/19 S'il pleut à la saint Gervais, + Il pleut quarante jours après. +06/20 Pluie d'orage à la saint Sylvère, + C'est beaucoup de vin dans le verre. +06/24 S'il pleut à la saint Jean, + Guère de vin ni de pain. +06/25 Après la saint Jean, si le coucou chante, + L'année sera rude et méchante. +06/29 S'il pleut la veille de la saint Pierre, + La vigne est réduite du tiers. + +/* Juillet */ +07/02 S'il pleut à la Visitation, + Pluie à discrétion. +07/03 À la saint Anatole, + Confiture dans la casserole. +07/06 Juillet sans orage, + Famine au village. +07/10 Petite pluie de juillet ensoleillé + Emplit caves et greniers. +07/13 Quand reviendra la saint Henri, + Tu planteras ton céleri. +07/16 Qui veut des beaux navets + Les sème en juillet. +07/20 À la sainte Marguerite, pluie + Jamais au paysan ne souris ; + Mais pluie à la sainte Anne, + Pour lui c'est de la manne. +07/21 S'il pleut à la saint Victor, + La récolte n'est pas d'or. +07/22 S'il pleut à la sainte Madeleine, + Il pleuvra durant six semaines. +07/25 Si saint jacques est serein, + L'hiver sera dû et serein. +07/26 Pour la sainte Anne, s'il pleut, + Trente jours seront pluvieux. + +/* Août */ +August Sun+2 En août et vendanges, il n'y a ni fêtes ni dimanches. +08/02 S'il pleut au mois d'août, + Les truffes sont au bout. +08/04 Août donne goût. +08/06 Soleil rouge en août, + C'est de la pluie partout. +08/10 Qui sème à la saint Laurent + Y perd la graine et puis le temps. +08/13 S'il pleut à la sainte Radegonde, + Misère abonde sur le monde. +08/15 Pluie de l'Assomption, + Huit jours de mouillon. +08/16 De saint Roch la grande chaleur + Prépare du vin la couleur. +08/18 Temps trop beau en août + Annonce hiver en courroux. +08/20 Brumes d'août font passer les châtaignes. +08/22 Jamais d'août la sécheresse + N'amènera la richesse. +08/24 À la saint Barthélémy, + Paie to dû. +08/28 Fine pluie à la saint Augustin, + C'est comme s'il pleuvait du vin. +08/29 Quand les hirondelles voient la saint Michel, + L'hiver ne vient qu'à Noël. + +/* Septembre */ +09/01 Pluie de la saint Gilles ruine les glands. +09/05 Septembre humide, + Pas de tonneau vide. +09/11 Tu peux semer sans crainte + Quand arrive la saint Hyacinthe. +09/15 La rosée de saint Albin + est, dit-on, rosée de vin. +09/19 Qui sème à la saint Janvier + De l'an récolte le premier. +09/21 Si Matthieu pleure au lieu de rire, + Le vin en vinaigre vire. +09/22 Semis de saint Maurice, + Récolte à ton caprice. +09/23 Septembre se nomme + Le mai de l'automne. +09/25 À la saint Firmin + L'hiver est en chemin. +09/29 Pluie de saint Michel sans orage + D'un hiver doux est le présage. +09/30 À la saint Jérôme, + Hoche tes pommes. + +/* Octobre */ +10/02 À la saint Léger, + Faut s'purger ! +10/04 Sème à la saint François, + Ton blé aura plus de poids. +10/09 Beau temps à la saint Denis, + Hiver pourri. +10/13 En octobre, qui ne fume rien + Ne récolte rien. +10/16 Coupe ton chou à la saint Gall, + En hiver c'est un régal. +10/18 À la saint Luc, sème dru, + Ou ne sème plus. +10/23 Gelée d'octobre + Rend le vigneron sobre. +10/25 Pour saint Crépin, mort aux mouches. +10/28 À la sainte Simone, + Il faut avoir rentré ses pommes. +10/31 Quand octobre prend sa fin, + Dans la cave est le vin. + +/* Novembre */ +11/01 À la Toussaint commence l'été de la saint Martin. +11/02 Telle Toussaint, tel Noël, + Et Pâques pareil. +11/04 À la saint Charles, + La gelée parle. +11/08 En novembre, s'il tonne, + L'année sera bonne. +11/11 Si l'hiver va droit son chemin, + Vous l'aurez à la saint Martin, + Mais s'il trouve quelque encombrée, + Vous l'aurez à la saint André. +11/11 Tue ton cochon à la saint Martin + Et invite ton voisin. +11/19 Sainte Élisabeth nous montre quel bonhomme sera l'hiver. +11/22 Pour sainte Cécile, + Chaque haricot en fait mille. +11/23 Quand l'hiver vient doucement, + Il est là à la saint Clément. +11/25 Sainte Catherine, toute fille veut la fêter, + Mais aucune ne veut la coiffer. +11/25 Quand sainte Catherine au ciel fait la moue, + Il faut patauger longtemps dans la boue. +11/30 Quand l'hiver n'est pas pressé, + Il arrive à la saint André. + +/* Décembre */ +12/SundayFirst Tel avent, + Tel printemps. +12/06 Neige de saint Nicolas + Donne froid pour trois mois. +12/07 À la saint Ambroise, + Du froid pour huit jours. +12/10 À la sainte Julie, + Le soleil ne quitte pas son lit. +12/13 À la sainte Luce, + Le jour croît du saut d'une puce. +12/16 Décembre de froid trop chiche + Ne fait pas le paysan riche. +12/21 S'il gèle à la saint Thomas, + Il gèlera encore trois mois. +12/23 Le tonnerre en décembre + Annonce pour l'an qui vient + Aux bêtes et aux gens + Abondance de biens. +12/25 Noël au balcon, + Pâques au tison. +12/26 À la saint Étienne, + Chacun trouve la sienne. +12/28 Les jours entre Noël et les Rois + Indiquent le temps des douze mois. + +#endif /*! _fr_FR_ISO8859_1_proverbes_ */ diff --git a/misc_cmds/calendar/calendars/hr_HR.ISO8859-2/calendar.all b/misc_cmds/calendar/calendars/hr_HR.ISO8859-2/calendar.all new file mode 100644 index 0000000..835ed47 --- /dev/null +++ b/misc_cmds/calendar/calendars/hr_HR.ISO8859-2/calendar.all @@ -0,0 +1,12 @@ +/* + * hrvatski calendar + * + * $FreeBSD: src/usr.bin/calendar/calendars/hr_HR.ISO8859-2/calendar.all,v 1.5 2001/06/11 03:08:46 ache Exp $ + */ + +#ifndef _hr_HR_ISO8859_2_all +#define _hr_HR_ISO8859_2_all + +#include + +#endif /* !_hr_HR_ISO8859_2_all */ diff --git a/misc_cmds/calendar/calendars/hr_HR.ISO8859-2/calendar.praznici b/misc_cmds/calendar/calendars/hr_HR.ISO8859-2/calendar.praznici new file mode 100644 index 0000000..8b9a56c --- /dev/null +++ b/misc_cmds/calendar/calendars/hr_HR.ISO8859-2/calendar.praznici @@ -0,0 +1,44 @@ +/* + * hrvatski praznici + * + * $FreeBSD: src/usr.bin/calendar/calendars/hr_HR.ISO8859-2/calendar.praznici,v 1.8 2007/09/21 23:43:03 edwin Exp $ + */ + +#ifndef _hr_HR_ISO8859_2_praznici +#define _hr_HR_ISO8859_2_praznici + +LANG=hr_HR.ISO8859-2 + +/* dr¾avni praznici */ +01/01 Nova godina +05/01 Praznik rada +05/30 Tjelovo +06/22 Dan antifa¹istièke borbe +06/25 Dan dr¾avnosti +08/05 Dan domovinske zahvalnosti +10/08 Dan neovisnosti + +/* katolièki blagdani */ +01/06 Sveta tri kralja +Easter-2 Veliki petak +Easter Uskrs +Easter+1 Uskrsni ponedjeljak +Easter+49 Duhovi +Easter+50 Duhovni ponedjeljak +Easter+39 Uza¹a¹æe +08/15 Velika Gospa +11/01 Svi sveti +12/25 Bo¾iæ +12/26 Stjepandan + +/* godi¹nja doba */ +03/21* Poèetak proljeæa +06/21* Poèetak ljeta +09/21* Poèetak jesena +12/21* Poèetak zime + +/* ljetno vrijeme */ +03/NedjeljaLast Poèetak ljetnog vremena +10/NedjeljaLast Kraj ljetnog vremena + +#endif /* !_hr_HR_ISO8859_2_praznici */ diff --git a/misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.all b/misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.all new file mode 100644 index 0000000..5165ab3 --- /dev/null +++ b/misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.all @@ -0,0 +1,13 @@ +/* + * Magyar kalendárium + * + * $FreeBSD: src/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.all,v 1.1 2004/08/16 09:31:09 dwmalone Exp $ + */ + +#ifndef _hu_HU_ISO8859_2_all_ +#define _hu_HU_ISO8859_2_all_ + +#include +#include + +#endif /* !_hu_HU.ISO8859-2_all_ */ diff --git a/misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.nevnapok b/misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.nevnapok new file mode 100644 index 0000000..14f7c57 --- /dev/null +++ b/misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.nevnapok @@ -0,0 +1,386 @@ +/* + * Névnapok + * + * $FreeBSD: src/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.nevnapok,v 1.1 2004/08/16 09:31:09 dwmalone Exp $ + */ + +#ifndef _hu_HU_ISO8859_2_nevnapok_ +#define _hu_HU_ISO8859_2_nevnapok_ + +LANG=hu_HU.ISO8859-2 + +/* + * N.B.: A névnapok Magyarországon a szentek napjai alapján szerepelnek + * a naptárban. Néhány név többször is szerepel, de mindenki + * csak egyszer tart névnapot egy évben. A választott nap + * ebben az esetben a hagyományokon és az illetõn múlik. + * + */ + +01/01 Fruzsina +01/02 Ábel, Gergely +01/03 Genovéva, Benjámin +01/04 Titusz, Leona +01/05 Simon +01/06 Boldizsár, Menyhárt +01/07 Attila, Ramóna +01/08 Gyöngyvér +01/09 Marcell +01/10 Melánia +01/11 Ágota, Baltazár +01/12 Ernõ, Cézár +01/13 Veronika +01/14 Bódog, Félix +01/15 Lóránt, Loránd +01/16 Gusztáv +01/17 Antal, Antónia +01/18 Piroska +01/19 Sára, Márió +01/20 Fábián, Sebestyén +01/21 Ágnes +01/22 Vince, Artúr +01/23 Zelma, Rajmund +01/24 Timót, Xénia +01/25 Pál +01/26 Vanda, Paula +01/27 Angelika, Angéla +01/28 Károly, Karola +01/29 Adél +01/30 Gerda, Martina +01/31 Marcella +02/01 Ignác +02/02 Karolina, Aida +02/03 Balázs +02/04 Ráhel, Csenge +02/05 Ágota, Ingrid +02/06 Dóra, Dorottya +02/07 Rómeó, Tódor +02/08 Aranka +02/09 Abigél, Alex +02/10 Elvira +02/11 Bertold, Marietta +02/12 Lívia, Lídia +02/13 Ella, Linda +02/14 Bálint, Valentin +02/15 Kolos +02/16 Julianna, Lilla +02/17 Donát +02/18 Bernadett +02/19 Zsuzsanna +02/20 Aladár, Álmos +02/21 Eleonóra +02/22 Gerzson +02/23 Alfréd +02/24 Mátyás +02/25 Géza +02/26 Edina +02/27 Ákos, Bátor +02/28 Elemér +03/01 Albin +03/02 Lujza +03/03 Kornélia +03/04 Kázmér +03/05 Adorján, Adrián +03/06 Leonóra, Inez +03/07 Tamás +03/08 Zoltán +03/09 Franciska, Fanni +03/10 Ildikó +03/11 Szilárd +03/12 Gergely +03/13 Krisztián, Ajtony +03/14 Matild +03/15 Kristóf +03/16 Henrietta +03/17 Gertrúd, Patrik +03/18 Sándor, Ede +03/19 József, Bánk +03/20 Klaudia +03/21 Benedek +03/22 Beáta, Izolda +03/23 Emõke +03/24 Gábor, Karina +03/25 Irén, Irisz +03/26 Emánuel +03/27 Hajnalka +03/28 Gedeon, Johanna +03/29 Aguszta +03/30 Zalán +03/31 Árpád +04/01 Hugó +04/02 Áron +04/03 Buda, Richárd +04/04 Izidor +04/05 Vince +04/06 Vilmos, Bíborka +04/07 Herman +04/08 Dénes +04/09 Erhard +04/10 Zsolt +04/11 Leó, Szaniszló +04/12 Gyula +04/13 Ida +04/14 Tibor +04/15 Anasztázia, Tas +04/16 Csongor +04/17 Rudolf +04/18 Andrea, Ilma +04/19 Emma +04/20 Tivadar +04/21 Konrád +04/22 Csilla, Noémi +04/23 Béla +04/24 György +04/25 Márk +04/26 Ervin +04/27 Zita +04/28 Valéria +04/29 Péter +04/30 Katalin, Kitti +05/01 Fülöp, Jakab +05/02 Zsigmond +05/03 Tímea, Irma +05/04 Mónika, Flórián +05/05 Györgyi +05/06 Ivett, Frida +05/07 Gizella +05/08 Mihály +05/09 Gergely +05/10 Ármin, Pálma +05/11 Ferenc +05/12 Pongrác +05/13 Szervác, Imola +05/14 Bonifác +05/15 Zsófia, Szonja +05/16 Mózes, Botond +05/17 Paszkál +05/18 Erik, Alexandra +05/19 Ivó, Milán +05/20 Bernát, Felícia +05/21 Konstantin +05/22 Júlia, Rita +05/23 Dezsõ +05/24 Eszter, Eliza +05/25 Orbán +05/26 Fülöp, Evelin +05/27 Hella +05/28 Emil, Csanád +05/29 Magdolna +05/30 Janka, Zsanett +05/31 Angéla, Petronella +06/01 Tünde +06/02 Kármen, Anita +06/03 Klotild +06/04 Bulcsú +06/05 Fatime +06/06 Norbert, Cintia +06/07 Róbert +06/08 Medárd +06/09 Félix +06/10 Margit, Gitta, Gréta +06/11 Barnabás +06/12 Villõ +06/13 Antal, Anett +06/14 Vazul +06/15 Jolán, Vid +06/16 Jusztin +06/17 Laura, Alida +06/18 Arnold, Levente +06/19 Gyárfás +06/20 Rafael +06/21 Alajos, Leila +06/22 Paulina +06/23 Zoltán, Szidonia +06/24 Iván +06/25 Vilmos, Viola +06/26 János, Pál +06/27 László +06/28 Levente, Irén +06/29 Péter, Pál +06/30 Pál +07/01 Annamária, Tihamér +07/02 Ottó +07/03 Kornél, Soma +07/04 Ulrik +07/05 Emese, Sarolta +07/06 Csaba +07/07 Apollónia +07/08 Ellák +07/09 Lukrécia +07/10 Amália +07/11 Nóra, Lili +07/12 Izabella, Dalma +07/13 Jenõ +07/14 Örs, Stella +07/15 Henrik, Roland +07/16 Valter +07/17 Endre, Elek +07/18 Frigyes +07/19 Emília +07/20 Illés +07/21 Daniella, Dániel +07/22 Magdolna +07/23 Lenke +07/24 Kinga, Kincsõ +07/25 Kristóf, Jakab +07/26 Anna, Anikó +07/27 Olga, Liliána +07/28 Szabolcs +07/29 Márta, Flóra +07/30 Judit, Xénia +07/31 Oszkár +08/01 Boglárka +08/02 Lehel +08/03 Hermina +08/04 Domonkos, Dominika +08/05 Krisztina +08/06 Berta, Bettina +08/07 Ibolya +08/08 László +08/09 Emõd +08/10 Lõrinc +08/11 Zsuzsanna, Tiborc +08/12 Klára +08/13 Ipoly +08/14 Marcell +08/15 Mária +08/16 Ábrahám +08/17 Jácint +08/18 Ilona +08/19 Huba +08/20 István +08/21 Sámuel, Hajna +08/22 Menyhért, Mirjam +08/23 Bence +08/24 Bertalan +08/25 Lajos, Patrícia +08/26 Izsó +08/27 Gáspár +08/28 Ágoston +08/29 Beatrix, Erna +08/30 Rózsa +08/31 Erika, Bella +09/01 Egyed, Egon +09/02 Rebeka, Dorina +09/03 Hilda +09/04 Rozália +09/05 Viktor, Lõrinc +09/06 Zakariás +09/07 Regina +09/08 Mária, Adrienn +09/09 Ádám +09/10 Nikolett, Hunor +09/11 Teodóra +09/12 Mária +09/13 Kornél +09/14 Szeréna, Roxána +09/15 Enikõ, Melitta +09/16 Edit +09/17 Zsófia +09/18 Diána +09/19 Vilhelmina +09/20 Friderika +09/21 Máté, Mirella +09/22 Móric +09/23 Tekla +09/24 Gellért, Mercédesz +09/25 Eufrozina, Kende +09/26 Jusztina +09/27 Adalbert +09/28 Vencel +09/29 Mihály +09/30 Jeromos +10/01 Malvin +10/02 Petra +10/03 Helga +10/04 Ferenc +10/05 Aurél +10/06 Brúnó, Renáta +10/07 Amália +10/08 Koppány +10/09 Dénes +10/10 Gedeon +10/11 Brigitta +10/12 Miksa +10/13 Kálmán, Ede +10/14 Helén +10/15 Teréz +10/16 Gál +10/17 Hedvig +10/18 Lukács +10/19 Nándor +10/20 Vendel +10/21 Orsolya +10/22 Elõd +10/23 Gyöngyi +10/24 Salamon +10/25 Blanka, Bianka +10/26 Dömötör +10/27 Szabina +10/28 Simon, Szimonetta +10/29 Nárcisz +10/30 Alfonz +10/31 Farkas +11/01 Marianna +11/02 Achilles +11/03 Gyõzõ +11/04 Károly +11/05 Imre +11/06 Lénárd +11/07 Rezsõ +11/08 Zsombor +11/09 Tivadar +11/10 Réka +11/11 Márton +11/12 Jónás, Renátó +11/13 Szilvia +11/14 Aliz +11/15 Albert, Lipót +11/16 Ödön +11/17 Hortenzia, Gergõ +11/18 Jenõ +11/19 Erzsébet +11/20 Jolán +11/21 Olivér +11/22 Cecília +11/23 Kelemen, Klementina +11/24 Emma +11/25 Katalin +11/26 Virág +11/27 Virgil +11/28 Stefánia +11/29 Taksony +11/30 András, Andor +12/01 Elza +12/02 Melinda, Vivien +12/03 Ferenc, Olívia +12/04 Borbála, Barbara +12/05 Vilma +12/06 Miklós +12/07 Ambrus +12/08 Mária +12/09 Natália +12/10 Judit +12/11 Árpád +12/12 Gabriella +12/13 Luca, Otília +12/14 Szilárda +12/15 Valér +12/16 Etelka, Aletta +12/17 Lázár, Olimpia +12/18 Auguszta +12/19 Viola +12/20 Teofil +12/21 Tamás +12/22 Zénó +12/23 Viktória +12/24 Ádám, Éva +12/25 Eugénia +12/26 István +12/27 János +12/28 Kamilla +12/29 Tamás, Tamara +12/30 Dávid +12/31 Szilveszter + +#endif /*! _hu_HU_ISO8859_2_nevnapok_ */ diff --git a/misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.unnepek b/misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.unnepek new file mode 100644 index 0000000..41e619f --- /dev/null +++ b/misc_cmds/calendar/calendars/hu_HU.ISO8859-2/calendar.unnepek @@ -0,0 +1,53 @@ +/* + * Ünnepnapok + * + * $FreeBSD: src/usr.bin/calendar/calendars/hu_HU.ISO8859-2/calendar.unnepek,v 1.1 2004/08/16 09:31:09 dwmalone Exp $ + */ + +#ifndef _hu_HU_ISO8859_2_unnepek_ +#define _hu_HU_ISO8859_2_unnepek_ + +LANG=hu_HU.ISO8859-2 + +/* Munkaszüneti napok */ +01/01 Újév +03/15 1848-as szabadságharc és forradalom ünnepe +05/01 Munka ünnepe +10/23 1956-os forradalom ünnepe + +/* Vallási munkaszüneti napok */ +Easter Húsvét +Easter+1 Húsvét hétfõ +Easter+42 Virágvasárnap +Easter+49 Pünkösd +Easter+50 Pünkösd hétfõ +08/20 Szent István nap, Államalapítás ünnepe +11/01 Halottak napja +12/25 Karácsony elsõ napja +12/26 Karácsony második napja + +/* Az itt következõ dátumok nem munkaszüneti napok csak ünnepnapok */ + +/* Csillagászati évszakok */ +03/21* Tavaszi napéjegyenlõség +06/21* Nyári napforduló +09/21* Õszi napéjegyenlõség +12/21* Téli napforduló + +/* Téli és nyári idõszámítás közötti váltás */ +03/SundayLast Váltás a nyári idõszámításra +10/SundayLast Váltás a téli idõszámításra + +/* Egyéb vallási ünnepek amelyek nem munkaszüneti napok */ +Easter-2 Nagy péntek ("a harangok Romába mennek") + +/* Egyéb ünnepnapok és emléknapok*/ +02/14 Valentin nap - a szerelmesek ünnepe +03/08 Nõ nap - egy-egy szál virág a nõknek +May Sun+2 Anyák napja +10/06 Az 1848-as aradi vértanuk napja +12/06 Mikulás napja - gyerekek csokit kapnak +12/24 Karácsony elõestéje +12/31 Szilveszter napja + +#endif /*! _hu_HU_ISO8859_2_unnepek_ */ diff --git a/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.all b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.all new file mode 100644 index 0000000..fe1ad0b --- /dev/null +++ b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.all @@ -0,0 +1,17 @@ +/* + * òÕÓÓËÉÊ ËÁÌÅÎÄÁÒØ + * + * $FreeBSD: src/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.all,v 1.6 2003/12/15 11:51:26 maxim Exp $ + */ + +#ifndef _ru_RU_KOI8_R_all +#define _ru_RU_KOI8_R_all + +#include +#include +#include +#include +#include +#include + +#endif /* !_ru_RU_KOI8_R_all */ diff --git a/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.common b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.common new file mode 100644 index 0000000..82e40a5 --- /dev/null +++ b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.common @@ -0,0 +1,90 @@ +/* + * òÏÓÓÉÊÓËÉÅ ÐÒÁÚÄÎÉËÉ + * + * $FreeBSD: src/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.common,v 1.14 2007/12/17 07:36:39 maxim Exp $ + */ + +#ifndef _ru_RU_KOI8_R_common_ +#define _ru_RU_KOI8_R_common_ + +LANG=ru_RU.KOI8-R + +12 ÑÎ× äÅÎØ ÒÁÂÏÔÎÉËÁ ÐÒÏËÕÒÁÔÕÒÙ +13 ÑÎ× äÅÎØ ÒÏÓÓÉÊÓËÏÊ ÐÅÞÁÔÉ +14 ÑÎ× óÔÁÒÙÊ îÏ×ÙÊ ÇÏÄ +21 ÑÎ× äÅÎØ ÉÎÖÅÎÅÒÎÙÈ ×ÏÊÓË +25 ÑÎ× ôÁÔØÑÎÉÎ ÄÅÎØ. óÔÕÄÅÎÞÅÓËÉÊ ÐÒÁÚÄÎÉË + 8 ÆÅ× äÅÎØ ÒÏÓÓÉÊÓËÏÊ ÎÁÕËÉ +10 ÆÅ× äÅÎØ ÄÉÐÌÏÍÁÔÉÞÅÓËÏÇÏ ÒÁÂÏÔÎÉËÁ + 1 ÍÁÒ ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÇÒÁÖÄÁÎÓËÏÊ ÏÂÏÒÏÎÙ +03/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÇÅÏÄÅÚÉÉ É ËÁÒÔÏÇÒÁÆÉÉ +18 ÍÁÒ äÅÎØ ÎÁÌÏÇÏ×ÏÊ ÐÏÌÉÃÉÉ +03/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÔÏÒÇÏ×ÌÉ, ÂÙÔÏ×ÏÇÏ ÏÂÓÌÕÖÉ×ÁÎÉÑ ÎÁÓÅÌÅÎÉÑ É ÖÉÌÉÝÎÏ-ËÏÍÍÕÎÁÌØÎÏÇÏ ÈÏÚÑÊÓÔ×Á +27 ÍÁÒ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÔÅÁÔÒÁ +27 ÍÁÒ äÅÎØ ×ÎÕÔÒÅÎÎÉÈ ×ÏÊÓË + 1 ÁÐÒ äÅÎØ ÓÍÅÈÁ + 2 ÁÐÒ äÅÎØ ÅÄÉÎÅÎÉÑ ÎÁÒÏÄÏ× +04/SunFirst äÅÎØ ÇÅÏÌÏÇÁ +12 ÁÐÒ äÅÎØ ËÏÓÍÏÎÁ×ÔÉËÉ +04/SunSecond äÅÎØ ×ÏÊÓË ÐÒÏÔÉ×Ï×ÏÚÄÕÛÎÏÊ ÏÂÏÒÏÎÙ +26 ÁÐÒ äÅÎØ ÐÁÍÑÔÉ ÐÏÇÉÂÛÉÈ × ÒÁÄÉÁÃÉÏÎÎÙÈ Á×ÁÒÉÑÈ É ËÁÔÁÓÔÒÏÆÁÈ +30 ÁÐÒ äÅÎØ ÐÏÖÁÒÎÏÊ ÏÈÒÁÎÙ + 7 ÍÁÊ äÅÎØ ÒÁÄÉÏ +17 ÍÁÊ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÔÅÌÅËÏÍÍÕÎÉËÁÃÉÊ +18 ÍÁÊ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÍÕÚÅÅ× +24 ÍÁÊ äÅÎØ ÓÌÁ×ÑÎÓËÏÊ ÐÉÓØÍÅÎÎÏÓÔÉ É ËÕÌØÔÕÒÙ +27 ÍÁÊ ïÂÝÅÒÏÓÓÉÊÓËÉÊ ÄÅÎØ ÂÉÂÌÉÏÔÅË +28 ÍÁÊ äÅÎØ ÐÏÇÒÁÎÉÞÎÉËÁ +05/SunLast äÅÎØ ÈÉÍÉËÁ + 1 ÉÀÎ äÅÎØ ÚÁÝÉÔÙ ÄÅÔÅÊ + 6 ÉÀÎ ðÕÛËÉÎÓËÉÊ ÄÅÎØ + 8 ÉÀÎ äÅÎØ ÓÏÃÉÁÌØÎÏÇÏ ÒÁÂÏÔÎÉËÁ +06/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÌÅÇËÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ +06/SunThird äÅÎØ ÍÅÄÉÃÉÎÓËÏÇÏ ÒÁÂÏÔÎÉËÁ +22 ÉÀÎ äÅÎØ ÐÁÍÑÔÉ É ÓËÏÒÂÉ (îÁÞÁÌÏ ÷ÅÌÉËÏÊ ïÔÅÞÅÓÔ×ÅÎÎÏÊ ÷ÏÊÎÙ, 1941 ÇÏÄ) +27 ÉÀÎ äÅÎØ ÍÏÌÏÄÅÖÉ +06/SatLast äÅÎØ ÉÚÏÂÒÅÔÁÔÅÌÑ É ÒÁÃÉÏÎÁÌÉÚÁÔÏÒÁ +07/SunFirst äÅÎØ ÒÁÂÏÔÎÉËÏ× ÍÏÒÓËÏÇÏ É ÒÅÞÎÏÇÏ ÆÌÏÔÁ +07/SunSecond äÅÎØ ÒÙÂÁËÁ +07/SunSecond äÅÎØ ÒÏÓÓÉÊÓËÏÊ ÐÏÞÔÙ +07/SunThird äÅÎØ ÍÅÔÁÌÌÕÒÇÁ +07/SunLast äÅÎØ ÷ÏÅÎÎÏ-íÏÒÓËÏÇÏ æÌÏÔÁ + 6 Á×Ç äÅÎØ ÖÅÌÅÚÎÏÄÏÒÏÖÎÙÈ ×ÏÊÓË +08/SunFirst äÅÎØ ÖÅÌÅÚÎÏÄÏÒÏÖÎÉËÁ +12 Á×Ç äÅÎØ ×ÏÅÎÎÏ-×ÏÚÄÕÛÎÙÈ ÓÉÌ +08/SunSecond äÅÎØ ÓÔÒÏÉÔÅÌÑ +08/SunThird äÅÎØ ÷ÏÚÄÕÛÎÏÇÏ æÌÏÔÁ +22 Á×Ç äÅÎØ ÇÏÓÕÄÁÒÓÔ×ÅÎÎÏÇÏ ÆÌÁÇÁ +27 Á×Ç äÅÎØ ËÉÎÏ +08/SunLast äÅÎØ ÛÁÈÔÅÒÁ + 1 ÓÅÎ äÅÎØ ÚÎÁÎÉÊ + 2 ÓÅÎ äÅÎØ ÒÏÓÓÉÊÓËÏÊ Ç×ÁÒÄÉÉ +09/SunFirst äÅÎØ ÒÁÂÏÔÎÉËÏ× ÎÅÆÔÑÎÏÊ É ÇÁÚÏ×ÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ +09/SunSecond äÅÎØ ÔÁÎËÉÓÔÁ +09/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÌÅÓÁ +09/SunLast äÅÎØ ÍÁÛÉÎÏÓÔÒÏÉÔÅÌÑ + 1 ÏËÔ äÅÎØ ÐÏÖÉÌÙÈ ÌÀÄÅÊ + 4 ÏËÔ äÅÎØ ×ÏÅÎÎÏ-ËÏÓÍÉÞÅÓËÉÈ ÓÉÌ + 5 ÏËÔ äÅÎØ ÕÞÉÔÅÌÑ +14 ÏËÔ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÓÔÁÎÄÁÒÔÉÚÁÃÉÉ +10/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÓÅÌØÓËÏÇÏ ÈÏÚÑÊÓÔ×Á É ÐÅÒÅÒÁÂÁÔÙ×ÁÀÝÅÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ +10/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÄÏÒÏÖÎÏÇÏ ÈÏÚÑÊÓÔ×Á +24 ÏËÔ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ïïî +25 ÏËÔ äÅÎØ ÔÁÍÏÖÅÎÎÉËÁ +30 ÏËÔ äÅÎØ ÐÁÍÑÔÉ ÖÅÒÔ× ÐÏÌÉÔÉÞÅÓËÉÈ ÒÅÐÒÅÓÓÉÊ +10/SunLast äÅÎØ ÒÁÂÏÔÎÉËÏ× Á×ÔÏÍÏÂÉÌØÎÏÇÏ ÔÒÁÎÓÐÏÒÔÁ + 9 ÎÏÑ ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ËÁÞÅÓÔ×Á +10 ÎÏÑ äÅÎØ ÍÉÌÉÃÉÉ +16 ÎÏÑ äÅÎØ ÍÏÒÓËÏÊ ÐÅÈÏÔÙ +17 ÎÏÑ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÓÔÕÄÅÎÔÏ× +11/SunThird äÅÎØ ÒÁËÅÔÎÙÈ ×ÏÊÓË É ÁÒÔÉÌÌÅÒÉÉ +21 ÎÏÑ äÅÎØ ÒÁÂÏÔÎÉËÏ× ÎÁÌÏÇÏ×ÙÈ ÏÒÇÁÎÏ× +26 ÎÏÑ ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÉÎÆÏÒÍÁÃÉÉ +11/SunLast äÅÎØ ÍÁÔÅÒÉ + 1 ÄÅË ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÂÏÒØÂÙ ÓÏ óðéäÏÍ +17 ÄÅË äÅÎØ ÒÁËÅÔÎÙÈ ×ÏÊÓË ÓÔÒÁÔÅÇÉÞÅÓËÏÇÏ ÎÁÚÎÁÞÅÎÉÑ +20 ÄÅË äÅÎØ ÒÁÂÏÔÎÉËÁ ÏÒÇÁÎÏ× ÂÅÚÏÐÁÓÎÏÓÔÉ +22 ÄÅË äÅÎØ ÜÎÅÒÇÅÔÉËÁ +27 ÄÅË äÅÎØ ÓÐÁÓÁÔÅÌÑ + +#endif /* !_ru_RU_KOI8_R_common_ */ diff --git a/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.holiday b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.holiday new file mode 100644 index 0000000..bf2d6ba --- /dev/null +++ b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.holiday @@ -0,0 +1,25 @@ +/* + * òÏÓÓÉÊÓËÉÅ ÐÒÁÚÄÎÉËÉ (ÎÅÒÁÂÏÞÉÅ "ËÒÁÓÎÙÅ" ÄÎÉ) + * + * $FreeBSD: src/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.holiday,v 1.3 2005/11/02 09:22:28 maxim Exp $ + */ + +#ifndef _ru_RU_KOI8_R_holiday_ +#define _ru_RU_KOI8_R_holiday_ + +LANG=ru_RU.KOI8-R + + 1 ÑÎ× îÏ×ÙÊ ÇÏÄ + 2 ÑÎ× îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ + 3 ÑÎ× îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ + 4 ÑÎ× îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ + 5 ÑÎ× îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ + 7 ÑÎ× òÏÖÄÅÓÔ×Ï èÒÉÓÔÏ×Ï +23 ÆÅ× äÅÎØ ÚÁÝÉÔÎÉËÁ ïÔÅÞÅÓÔ×Á + 8 ÍÁÒ íÅÖÄÕÎÁÒÏÄÎÙÊ ÖÅÎÓËÉÊ ÄÅÎØ + 1 ÍÁÊ ðÒÁÚÄÎÉË ÷ÅÓÎÙ É ôÒÕÄÁ + 9 ÍÁÊ äÅÎØ ðÏÂÅÄÙ +12 ÉÀÎ äÅÎØ òÏÓÓÉÉ + 4 ÎÏÑ äÅÎØ ÎÁÒÏÄÎÏÇÏ ÅÄÉÎÓÔ×Á + +#endif /* !_ru_RU_KOI8_R_holiday_ */ diff --git a/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.military b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.military new file mode 100644 index 0000000..f3a6f33 --- /dev/null +++ b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.military @@ -0,0 +1,27 @@ +/* + * äÎÉ ×ÏÉÎÓËÏÊ ÓÌÁ×Ù òÏÓÓÉÉ + * + * $FreeBSD: src/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.military,v 1.2 2003/12/26 13:04:13 maxim Exp $ + */ + +#ifndef _ru_RU_KOI8_R_military_ +#define _ru_RU_KOI8_R_military_ + +LANG=ru_RU.KOI8-R + +27 ÑÎ× äÅÎØ ÓÎÑÔÉÑ ÂÌÏËÁÄÙ ÇÏÒÏÄÁ ìÅÎÉÎÇÒÁÄÁ (1944 ÇÏÄ) + 2 ÆÅ× äÅÎØ ÒÁÚÇÒÏÍÁ ÓÏ×ÅÔÓËÉÍÉ ×ÏÊÓËÁÍÉ ÎÅÍÅÃËÏ-ÆÁÛÉÓÔÓËÉÈ ×ÏÊÓË × óÔÁÌÉÎÇÒÁÄÓËÏÊ ÂÉÔ×Å (1943 ÇÏÄ) +23 ÆÅ× äÅÎØ ÐÏÂÅÄÙ ëÒÁÓÎÏÊ áÒÍÉÉ ÎÁÄ ËÁÊÚÅÒÏ×ÓËÉÍÉ ×ÏÊÓËÁÍÉ çÅÒÍÁÎÉÉ (1918 ÇÏÄ) +18 ÁÐÒ äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÉÈ ×ÏÉÎÏ× ËÎÑÚÑ áÌÅËÓÁÎÄÒÁ îÅ×ÓËÏÇÏ ÎÁÄ ÎÅÍÅÃËÉÍÉ ÒÙÃÁÒÑÍÉ ÎÁ þÕÄÓËÏÍ ÏÚÅÒÅ (ìÅÄÏ×ÏÅ ÐÏÂÏÉÝÅ, 1242 ÇÏÄ) +10 ÉÀÌ äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÏÊ ÁÒÍÉÉ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ ðÅÔÒÁ ðÅÒ×ÏÇÏ ÎÁÄ Û×ÅÄÁÍÉ × ðÏÌÔÁ×ÓËÏÍ ÓÒÁÖÅÎÉÉ (1709 ÇÏÄ) + 9 Á×Ç äÅÎØ ÐÅÒ×ÏÊ × ÒÏÓÓÉÊÓËÏÊ ÉÓÔÏÒÉÉ ÍÏÒÓËÏÊ ÐÏÂÅÄÙ ÒÕÓÓËÏÇÏ ÆÌÏÔÁ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ ðÅÔÒÁ ðÅÒ×ÏÇÏ ÎÁÄ Û×ÅÄÁÍÉ Õ ÍÙÓÁ çÁÎÇÕÔ (1714 ÇÏÄ) +23 Á×Ç äÅÎØ ÒÁÚÇÒÏÍÁ ÓÏ×ÅÔÓËÉÍÉ ×ÏÊÓËÁÍÉ ÎÅÍÅÃËÏ-ÆÁÛÉÓÔÓËÉÈ ×ÏÊÓË × ëÕÒÓËÏÊ ÂÉÔ×Å (1943 ÇÏÄ) + 8 ÓÅÎ äÅÎØ âÏÒÏÄÉÎÓËÏÇÏ ÓÒÁÖÅÎÉÑ ÒÕÓÓËÏÊ ÁÒÍÉÉ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ í.é. ëÕÔÕÚÏ×Á Ó ÆÒÁÎÃÕÚÓËÏÊ ÁÒÍÉÅÊ (1812 ÇÏÄ) +11 ÓÅÎ äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÏÊ ÜÓËÁÄÒÙ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ æ.æ. õÛÁËÏ×Á ÎÁÄ ÔÕÒÅÃËÏÊ ÜÓËÁÄÒÏÊ Õ ÍÙÓÁ ôÅÎÄÒÁ (1790 ÇÏÄ) +21 ÓÅÎ äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÉÈ ÐÏÌËÏ× ×Ï ÇÌÁ×Å Ó ×ÅÌÉËÉÍ ËÎÑÚÅÍ äÍÉÔÒÉÅÍ äÏÎÓËÉÍ ÎÁÄ ÍÏÎÇÏÌÏ-ÔÁÔÁÒÓËÉÍÉ ×ÏÊÓËÁÍÉ × ëÕÌÉËÏ×ÓËÏÊ ÂÉÔ×Å (1380 ÇÏÄ) + 7 ÎÏÑ äÅÎØ ÏÓ×ÏÂÏÖÄÅÎÉÑ íÏÓË×Ù ÓÉÌÁÍÉ ÎÁÒÏÄÎÏÇÏ ÏÐÏÌÞÅÎÉÑ ÐÏÄ ÒÕËÏ×ÏÄÓÔ×ÏÍ ëÕÚØÍÙ íÉÎÉÎÁ É äÍÉÔÒÉÑ ðÏÖÁÒÓËÏÇÏ ÏÔ ÐÏÌØÓËÉÈ ÉÎÔÅÒ×ÅÎÔÏ× (1612 ÇÏÄ) + 1 ÄÅË äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÏÊ ÜÓËÁÄÒÙ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ ð.ó. îÁÈÉÍÏ×Á ÎÁÄ ÔÕÒÅÃËÏÊ ÜÓËÁÄÒÏÊ Õ ÍÙÓÁ óÉÎÏÐ (1853 ÇÏÄ) + 5 ÄÅË äÅÎØ ÎÁÞÁÌÁ ËÏÎÔÒÎÁÓÔÕÐÌÅÎÉÑ ÓÏ×ÅÔÓËÉÈ ×ÏÊÓË ÐÒÏÔÉ× ÎÅÍÅÃËÏ-ÆÁÛÉÓÔÓËÉÈ ×ÏÊÓË × ÂÉÔ×Å ÐÏÄ íÏÓË×ÏÊ (1941 ÇÏÄ) +24 ÄÅË äÅÎØ ×ÚÑÔÉÑ ÔÕÒÅÃËÏÊ ËÒÅÐÏÓÔÉ éÚÍÁÉÌ ÒÕÓÓËÉÍÉ ×ÏÊÓËÁÍÉ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ á.÷. óÕ×ÏÒÏ×Á (1790 ÇÏÄ) + +#endif /* !_ru_RU_KOI8_R_military_ */ diff --git a/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.msk b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.msk new file mode 100644 index 0000000..c173b65 --- /dev/null +++ b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.msk @@ -0,0 +1,16 @@ +/* + * ðÅÒÅ×ÏÄ ÞÁÓÏ× ÄÌÑ ÍÏÓËÏ×ÓËÏÊ ×ÒÅÍÅÎÎÏÊ ÚÏÎÙ + * + * $FreeBSD: src/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.msk,v 1.7 2006/12/29 06:44:24 ru Exp $ + */ + +#ifndef _ru_RU_KOI8_R_msk_ +#define _ru_RU_KOI8_R_msk_ + +LANG=ru_RU.KOI8-R + +03/SunLast îÁÞÁÌÏ ÍÏÓËÏ×ÓËÏÇÏ ÌÅÔÎÅÇÏ ×ÒÅÍÅÎÉ; ÞÁÓÙ ÐÅÒÅ×ÏÄÑÔÓÑ ×ÐÅÒÅÄ +10/SunLast ëÏÎÅà ÍÏÓËÏ×ÓËÏÇÏ ÌÅÔÎÅÇÏ ×ÒÅÍÅÎÉ; ÞÁÓÙ ÐÅÒÅ×ÏÄÑÔÓÑ ÎÁÚÁÄ + +#endif /* !_ru_RU_KOI8_R_msk_ */ + diff --git a/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.orthodox b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.orthodox new file mode 100644 index 0000000..da2d0a7 --- /dev/null +++ b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.orthodox @@ -0,0 +1,34 @@ +/* + * ðÒÁ×ÏÓÌÁ×ÎÙÅ ÐÒÁÚÄÎÉËÉ + * + * $FreeBSD: src/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.orthodox,v 1.5 2000/05/04 11:31:16 phantom Exp $ + */ + +#ifndef _ru_RU_KOI8_R_orthodox_ +#define _ru_RU_KOI8_R_orthodox_ + +LANG=ru_RU.KOI8-R +Paskha=ðÁÓÈÁ + +21 ÓÅÎ òÏÖÄÅÓÔ×Ï ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ +28 ÓÅÎ ÷ÏÚÄ×ÉÖÅÎÉÅ ëÒÅÓÔÁ çÏÓÐÏÄÎÑ +14 ÏËÔ ðÏËÒÏ× ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ + 4 ÄÅË ÷×ÅÄÅÎÉÅ ×Ï ÈÒÁÍ ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ + 7 ÑÎ× òÏÖÄÅÓÔ×Ï èÒÉÓÔÏ×Ï +19 ÑÎ× âÏÇÏÑ×ÌÅÎÉÅ ÉÌÉ ëÒÅÝÅÎÉÅ çÏÓÐÏÄÎÅ +15 ÆÅ× óÒÅÔÅÎÉÅ çÏÓÐÏÄÎÅ +ðÁÓÈÁ-46 ÷ÅÌÉËÉÊ ðÏÓÔ +ðÁÓÈÁ-7 ÷ÅÒÂÎÏÅ ÷ÏÓËÒÅÓÅÎØÅ +ðÁÓÈÁ-3 ÷ÅÌÉËÉÊ þÅÔ×ÅÒÇ +ðÁÓÈÁ-2 óÔÒÁÓÔÎÁÑ ðÑÔÎÉÃÁ +ðÁÓÈÁ ÷ÏÓËÒÅÓÅÎÉÅ èÒÉÓÔÏ×Ï +ðÁÓÈÁ+39 ÷ÏÚÎÅÓÅÎÉÅ +ðÁÓÈÁ+49 ðÑÔÉÄÅÓÑÔÎÉÃÁ +ðÁÓÈÁ+56 ôÒÏÉÃÉÎ äÅÎØ +ðÁÓÈÁ+60 ðÒÁÚÄÎÉË ôÅÌÁ èÒÉÓÔÏ×Á + 7 ÁÐÒ âÌÁÇÏ×ÅÝÅÎÉÅ ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ +19 Á×Ç ðÒÅÏÂÒÁÖÅÎÉÅ çÏÓÐÏÄÎÅ +28 Á×Ç õÓÐÅÎÉÅ ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ + +#endif /* !_ru_RU_KOI8_R_orthodox_ */ + diff --git a/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.pagan b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.pagan new file mode 100644 index 0000000..7ac2bac --- /dev/null +++ b/misc_cmds/calendar/calendars/ru_RU.KOI8-R/calendar.pagan @@ -0,0 +1,42 @@ +/* + * ñÚÙÞÅÓËÉÅ ÐÒÁÚÄÎÉËÉ + * + * $FreeBSD: src/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.pagan,v 1.7 2003/12/31 18:01:31 ache Exp $ + */ + +#ifndef _ru_RU_KOI8_R_pagan_ +#define _ru_RU_KOI8_R_pagan_ + +LANG=ru_RU.KOI8-R +Paskha=ðÁÓÈÁ + +21 ÄÅË* úÉÍÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ +25 ÄÅË ëÏÌÑÄÁ (ÓÄ×ÉÎÕÔÏÅ ÚÉÍÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ) + 6 ÑÎ× äÅÎØ ëÁÝÅÑ É ÷ÅÌÅÓÁ +24 ÆÅ× äÅÎØ ÷ÅÌÅÓÁ +29 ÆÅ× äÅÎØ ëÁÝÅÑ + 1 ÍÁÒ äÅÎØ íÁÒÅÎÙ +14 ÍÁÒ îÏ×ÙÊ çÏÄ, ï×ÓÅÎØ ÍÁÌÙÊ +ðÁÓÈÁ-47 íÁÓÌÅÎÉÃÁ +ðÁÓÈÁ+7 ëÒÁÓÎÁÑ çÏÒËÁ +ðÁÓÈÁ+16 òÁÄÕÎÉÃÁ +20 ÍÁÒ* ÷ÅÓÅÎÎÉÅ ÒÁ×ÎÏÄÅÎÓÔ×ÉÅ + 7 ÁÐÒ äÅÎØ íÁÒÅÎÙ (ÓÄ×ÉÎÕÔÏÅ ×ÅÓÅÎÎÅÅ ÒÁ×ÎÏÄÅÎÓÔ×ÉÅ) + 6 ÍÁÊ äÅÎØ äÁÖØÂÏÇÁ, ï×ÓÅÎØ ÂÏÌØÛÏÊ +22 ÍÁÊ ñÒÉÌÉÎ äÅÎØ +15 ÉÀÎ äÅÎØ ôÒÉÇÌÁ×Á +21 ÉÀÎ* ìÅÔÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ + 1 ÉÀÌ òÕÓÁÌØÎÁÑ îÅÄÅÌÑ + 7 ÉÀÌ ëÕÐÁÌÁ (ÓÄ×ÉÎÕÔÏÅ ÌÅÔÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ) +27 ÉÀÌ ïÔÂÏÒ ÖÅÒÔ× ðÅÒÕÎÕ, ÒÕÓÁÌÉÉ + 2 Á×Ç ðÅÒÕÎÏ× äÅÎØ +21 Á×Ç äÅÎØ óÔÒÉÂÏÇÁ +28 Á×Ç õÓÐÅÎÉÅ úÌÁÔÏÇÏÒËÉ +14 ÓÅÎ äÅÎØ ÷ÏÌÈÁ úÍÅÅ×ÉÞÁ +22 ÓÅÎ* ðÏ×ÏÒÏÔ Ë ÚÉÍÅ (ÏÓÅÎÎÅÅ ÒÁ×ÎÏÄÅÎÓÔ×ÉÅ) +10 ÎÏÑ äÅÎØ íÁËÏÛÉ +21 ÎÏÑ äÅÎØ ó×ÁÒÏÇÁ É óÅÍÁÒÇÌÁ + 9 ÄÅË äÅÎØ äÁÖØÂÏÇÁ É íÁÒÅÎÙ + +#endif /* !_ru_RU_KOI8_R_pagan_ */ + diff --git a/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.all b/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.all new file mode 100644 index 0000000..dc862bd --- /dev/null +++ b/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.all @@ -0,0 +1,14 @@ +/* + * õËÒÁ§ÎÓØËÉÊ ËÁÌÅÎÄÁÒ + * + * $FreeBSD: src/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.all,v 1.1 2005/10/28 21:25:28 ru Exp $ + */ + +#ifndef _uk_UA_KOI8_U_all_ +#define _uk_UA_KOI8_U_all_ + +#include +#include +#include + +#endif /* !_uk_UA_KOI8_U_all_ */ diff --git a/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.holiday b/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.holiday new file mode 100644 index 0000000..d127ed9 --- /dev/null +++ b/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.holiday @@ -0,0 +1,22 @@ +/* + * õËÒÁ§ÎÓØ˦ ÄÅÒÖÁ×Φ Ó×ÑÔÁ + * + * $FreeBSD: src/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.holiday,v 1.1 2005/10/28 21:25:28 ru Exp $ + */ + +#ifndef _uk_UA_KOI8_U_holiday_ +#define _uk_UA_KOI8_U_holiday_ + +LANG=uk_UA.KOI8-U +Paskha=÷ÅÌÉËÄÅÎØ + +ó¦Þ 01 îÏ×ÉÊ ò¦Ë +ó¦Þ 07 ò¦ÚÄ×Ï èÒÉÓÔÏ×Å +âÅÒ 08 8 âÅÒÅÚÎÑ - í¦ÖÎÁÒÏÄÎÉÊ ö¦ÎÏÞÉÊ äÅÎØ +ôÒÁ 01 1 ôÒÁ×ÎÑ - äÅÎØ ðÒÁæ +ôÒÁ 09 äÅÎØ ðÅÒÅÍÏÇÉ +÷ÅÌÉËÄÅÎØ+49 ôÒ¦ÊÃÑ +þÅÒ 28 äÅÎØ ëÏÎÓÔÉÔÕæ§ õËÒÁ§ÎÉ +óÅÒ 24 äÅÎØ îÅÚÁÌÅÖÎÏÓÔ¦ õËÒÁ§ÎÉ + +#endif /* !_uk_UA_KOI8_U_holiday_ */ diff --git a/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.misc b/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.misc new file mode 100644 index 0000000..ec91264 --- /dev/null +++ b/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.misc @@ -0,0 +1,18 @@ +/* + * ¶ÎÛ¦ æËÁצ ÄÁÔÉ + * + * $FreeBSD: src/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.misc,v 1.1 2005/10/28 21:25:28 ru Exp $ + */ + +#ifndef _uk_UA_KOI8_U_misc_ +#define _uk_UA_KOI8_U_misc_ + +LANG=uk_UA.KOI8-U + +/* ðÏÓÔÁÎÏ×Á ëÁ¦ÎÅÔÕ í¦Î¦ÓÔÒ¦× õËÒÁ§ÎÉ ×¦Ä 13 ÔÒÁ×ÎÑ 1996 Ò. N 509 + * "ðÒÏ ÐÏÒÑÄÏË ÏÂÞÉÓÌÅÎÎÑ ÞÁÓÕ ÎÁ ÔÅÒÉÔÏÒ¦§ õËÒÁ§ÎÉ" + */ +âÅÒ îÄ-1 ðÅÒÅÈ¦Ä ÎÁ ̦ÔÎ¦Ê ÞÁÓ (ÏÓÔÁÎÎÑ ÎÅĦÌÑ ÂÅÒÅÚÎÑ) +öÏ× îÄ-1 ðÅÒÅÈ¦Ä ÎÁ ÚÉÍÏ×ÉÊ ÞÁÓ (ÏÓÔÁÎÎÑ ÎÅĦÌÑ ÖÏ×ÔÎÑ) + +#endif /* !_uk_UA_KOI8_U_misc_ */ diff --git a/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.orthodox b/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.orthodox new file mode 100644 index 0000000..31f6df3 --- /dev/null +++ b/misc_cmds/calendar/calendars/uk_UA.KOI8-U/calendar.orthodox @@ -0,0 +1,35 @@ +/* + * ðÒÁ×ÏÓÌÁ×Φ Ó×ÑÔÁ + * + * $FreeBSD: src/usr.bin/calendar/calendars/uk_UA.KOI8-U/calendar.orthodox,v 1.1 2005/10/28 21:25:28 ru Exp $ + */ + +#ifndef _uk_UA_KOI8_U_orthodox_ +#define _uk_UA_KOI8_U_orthodox_ + +LANG=uk_UA.KOI8-U +Paskha=÷ÅÌÉËÄÅÎØ + + 7 ó¦Þ ò¦ÚÄ×Ï èÒÉÓÔÏ×Å +19 ó¦Þ âÏÇÏÑ×ÌÅÎÎÑ ÁÂÏ èÒÅÝÅÎÎÑ çÏÓÐÏÄΤ +15 ìÀÔ óÔÒ¦ÔÅÎÎÑ çÏÓÐÏÄΤ +÷ÅÌÉËÄÅÎØ-46 ÷ÅÌÉËÉÊ ð¦ÓÔ +÷ÅÌÉËÄÅÎØ-7 ÷ÅÒÂÎÁ îÅĦÌÑ +÷ÅÌÉËÄÅÎØ-3 ÷ÅÌÉËÉÊ þÅÔ×ÅÒ +÷ÅÌÉËÄÅÎØ-2 óÔÒÁÓÎÁ ð'ÑÔÎÉÃÑ +÷ÅÌÉËÄÅÎØ ÷ÏÓËÒÅÓ¦ÎÎÑ èÒÉÓÔÏ×Å +÷ÅÌÉËÄÅÎØ+39 ÷ÏÚÎÅÓ¦ÎÎÑ çÏÓÐÏÄΤ +÷ÅÌÉËÄÅÎØ+49 äÅÎØ ó×ÑÔϧ ôÒ¦Êæ, ð'ÑÔÉÄÅÓÑÔÎÉÃÑ +÷ÅÌÉËÄÅÎØ+60 ó×ÑÔÏ Ô¦ÌÁ èÒÉÓÔÏ×ÏÇÏ + 7 ëצ âÌÁÇÏצÝÅÎÎÑ ðÒÅÓ×ÑÔϧ ä¦×É íÁÒ¦§ + 7 ìÉÐ ò¦ÚÄ×Ï Ó×ÑÔÏÇÏ ¶×ÁÎÁ èÒÅÓÔÉÔÅÌÑ +12 ìÉÐ ó×ÑÔÉÈ ÷ÅÒÈÏ×ÎÉÈ ÁÐÏÓÔÏÌ¦× ðÅÔÒÁ ¦ ðÁ×ÌÁ +19 óÅÒ ðÒÅÏÂÒÁÖÅÎÎÑ çÏÓÐÏÄΤ +28 óÅÒ õÓÐÅÎÎÑ ðÒÅÓ×ÑÔϧ âÏÇÏÒÏÄÉæ +11 ÷ÅÒ õÓ¦ËÎÏ×ÅÎÎÑ ÞÅÓÎϧ ÇÏÌÏ×É Ó×ÑÔÏÇÏ ¶×ÁÎÁ èÒÅÓÔÉÔÅÌÑ +21 ÷ÅÒ ò¦ÚÄ×Ï ðÒÅÓ×ÑÔϧ âÏÇÏÒÏÄÉæ +27 ÷ÅÒ ÷ÏÚÄ×ÉÖÅÎÎÑ þÅÓÎÏÇÏ èÒÅÓÔÁ +14 öÏ× ðÏËÒÏ×Á ðÒÅÓ×ÑÔϧ âÏÇÏÒÏÄÉæ + 4 çÒÕ ÷×ÅÄÅÎÎÑ ÄÏ ÈÒÁÍÕ ðÒÅÓ×ÑÔϧ âÏÇÏÒÏÄÉæ + +#endif /* !_uk_UA_KOI8_U_orthodox_ */ diff --git a/misc_cmds/calendar/day.c b/misc_cmds/calendar/day.c new file mode 100644 index 0000000..f41fc2d --- /dev/null +++ b/misc_cmds/calendar/day.c @@ -0,0 +1,498 @@ +/* + * 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. 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. + */ + +#include +__FBSDID("$FreeBSD: src/usr.bin/calendar/day.c,v 1.27 2007/06/09 05:54:13 grog Exp $"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "pathnames.h" +#include "calendar.h" + +struct tm *tp; +static const struct tm tm0; +int *cumdays, yrdays; +char dayname[10]; + + +/* 1-based month, 0-based days, cumulative */ +int daytab[][14] = { + { 0, -1, 30, 58, 89, 119, 150, 180, 211, 242, 272, 303, 333, 364 }, + { 0, -1, 30, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, +}; + +static char const *days[] = { + "sun", "mon", "tue", "wed", "thu", "fri", "sat", NULL, +}; + +static const char *months[] = { + "jan", "feb", "mar", "apr", "may", "jun", + "jul", "aug", "sep", "oct", "nov", "dec", NULL, +}; + +static struct fixs fndays[8]; /* full national days names */ +static struct fixs ndays[8]; /* short national days names */ + +static struct fixs fnmonths[13]; /* full national months names */ +static struct fixs nmonths[13]; /* short national month names */ + + +void +setnnames(void) +{ + char buf[80]; + int i, l; + struct tm tm; + + for (i = 0; i < 7; i++) { + tm.tm_wday = i; + strftime(buf, sizeof(buf), "%a", &tm); + for (l = strlen(buf); + l > 0 && isspace((unsigned char)buf[l - 1]); + l--) + ; + buf[l] = '\0'; + if (ndays[i].name != NULL) + free(ndays[i].name); + if ((ndays[i].name = strdup(buf)) == NULL) + errx(1, "cannot allocate memory"); + ndays[i].len = strlen(buf); + + strftime(buf, sizeof(buf), "%A", &tm); + for (l = strlen(buf); + l > 0 && isspace((unsigned char)buf[l - 1]); + l--) + ; + buf[l] = '\0'; + if (fndays[i].name != NULL) + free(fndays[i].name); + if ((fndays[i].name = strdup(buf)) == NULL) + errx(1, "cannot allocate memory"); + fndays[i].len = strlen(buf); + } + + for (i = 0; i < 12; i++) { + tm.tm_mon = i; + strftime(buf, sizeof(buf), "%b", &tm); + for (l = strlen(buf); + l > 0 && isspace((unsigned char)buf[l - 1]); + l--) + ; + buf[l] = '\0'; + if (nmonths[i].name != NULL) + free(nmonths[i].name); + if ((nmonths[i].name = strdup(buf)) == NULL) + errx(1, "cannot allocate memory"); + nmonths[i].len = strlen(buf); + + strftime(buf, sizeof(buf), "%B", &tm); + for (l = strlen(buf); + l > 0 && isspace((unsigned char)buf[l - 1]); + l--) + ; + buf[l] = '\0'; + if (fnmonths[i].name != NULL) + free(fnmonths[i].name); + if ((fnmonths[i].name = strdup(buf)) == NULL) + errx(1, "cannot allocate memory"); + fnmonths[i].len = strlen(buf); + } +} + +void +settime(time_t now) +{ + char *oldl, *lbufp; + + tp = localtime(&now); + if ( isleap(tp->tm_year + 1900) ) { + yrdays = 366; + cumdays = daytab[1]; + } else { + yrdays = 365; + cumdays = daytab[0]; + } + /* Friday displays Monday's events */ + /* -A n ignores weekends */ + if (f_dayAfter != 0 && Friday != -1) { + int weeks = f_dayAfter / 5; + int days = f_dayAfter % 5; + f_dayAfter += 2 * weeks; + if (days && + (tp->tm_wday <= Friday) && + (tp->tm_wday+days > Friday)) { + f_dayAfter += 2; + } + } + header[5].iov_base = dayname; + + oldl = NULL; + lbufp = setlocale(LC_TIME, NULL); + if (lbufp != NULL && (oldl = strdup(lbufp)) == NULL) + errx(1, "cannot allocate memory"); + (void) setlocale(LC_TIME, "C"); + header[5].iov_len = strftime(dayname, sizeof(dayname), "%A", tp); + (void) setlocale(LC_TIME, (oldl != NULL ? oldl : "")); + if (oldl != NULL) + free(oldl); + + setnnames(); +} + +/* convert Day[/Month][/Year] into unix time (since 1970) + * Day: two digits, Month: two digits, Year: digits + */ +time_t +Mktime (char *dp) +{ + time_t t; + int d, m, y; + struct tm tm; + + (void)time(&t); + tp = localtime(&t); + + tm = tm0; + tm.tm_mday = tp->tm_mday; + tm.tm_mon = tp->tm_mon; + tm.tm_year = tp->tm_year; + + switch (sscanf(dp, "%d.%d.%d", &d, &m, &y)) { + case 3: + if (y > 1900) + y -= 1900; + tm.tm_year = y; + /* FALLTHROUGH */ + case 2: + tm.tm_mon = m - 1; + /* FALLTHROUGH */ + case 1: + tm.tm_mday = d; + } + +#ifdef DEBUG + fprintf(stderr, "Mktime: %d %d %s\n", (int)mktime(&tm), (int)t, + asctime(&tm)); +#endif + return(mktime(&tm)); +} + +/* + * Possible date formats include any combination of: + * 3-charmonth (January, Jan, Jan) + * 3-charweekday (Friday, Monday, mon.) + * numeric month or day (1, 2, 04) + * + * Any character may separate them, or they may not be separated. Any line, + * following a line that is matched, that starts with "whitespace", is shown + * along with the matched line. + */ +int +isnow(char *endp, int *monthp, int *dayp, int *varp) +{ + int day, flags, month = 0, v1, v2; + + /* + * CONVENTION + * + * Month: 1-12 + * Monthname: Jan .. Dec + * Day: 1-31 + * Weekday: Mon-Sun + * + */ + + flags = 0; + + /* read first field */ + /* didn't recognize anything, skip it */ + if (!(v1 = getfield(endp, &endp, &flags))) + return (0); + + /* Easter or Easter depending days */ + if (flags & F_EASTER) + day = v1 - 1; /* days since January 1 [0-365] */ + + /* + * 1. {Weekday,Day} XYZ ... + * + * where Day is > 12 + */ + else if (flags & F_ISDAY || v1 > 12) { + + /* found a day; day: 1-31 or weekday: 1-7 */ + day = v1; + + /* {Day,Weekday} {Month,Monthname} ... */ + /* if no recognizable month, assume just a day alone + * in other words, find month or use current month */ + if (!(month = getfield(endp, &endp, &flags))) + month = tp->tm_mon + 1; + } + + /* 2. {Monthname} XYZ ... */ + else if (flags & F_ISMONTH) { + month = v1; + + /* Monthname {day,weekday} */ + /* if no recognizable day, assume the first day in month */ + if (!(day = getfield(endp, &endp, &flags))) + day = 1; + } + + /* Hm ... */ + else { + v2 = getfield(endp, &endp, &flags); + + /* + * {Day} {Monthname} ... + * where Day <= 12 + */ + if (flags & F_ISMONTH) { + day = v1; + month = v2; + *varp = 0; + } + + /* {Month} {Weekday,Day} ... */ + else { + /* F_ISDAY set, v2 > 12, or no way to tell */ + month = v1; + /* if no recognizable day, assume the first */ + day = v2 ? v2 : 1; + *varp = 0; + } + } + + /* convert Weekday into *next* Day, + * e.g.: 'Sunday' -> 22 + * 'SundayLast' -> ?? + */ + if (flags & F_ISDAY) { +#ifdef DEBUG + fprintf(stderr, "\nday: %d %s month %d\n", day, endp, month); +#endif + + *varp = 1; + /* variable weekday, SundayLast, MondayFirst ... */ + if (day < 0 || day >= 10) { + + /* negative offset; last, -4 .. -1 */ + if (day < 0) { + v1 = day/10 - 1; /* offset -4 ... -1 */ + day = 10 + (day % 10); /* day 1 ... 7 */ + + /* day, eg '22nd' */ + v2 = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7); + + /* (month length - day) / 7 + 1 */ + if (cumdays[month+1] - cumdays[month] >= v2 + && ((int)((cumdays[month+1] - + cumdays[month] - v2) / 7) + 1) == -v1) + /* bingo ! */ + day = v2; + + /* set to yesterday */ + else { + day = tp->tm_mday - 1; + if (day == 0) + return (0); + } + } + + /* first, second ... +1 ... +5 */ + else { + v1 = day/10; /* offset: +1 (first Sunday) ... */ + day = day % 10; + + /* day, eg '22th' */ + v2 = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7); + + /* Hurrah! matched */ + if ( ((v2 - 1 + 7) / 7) == v1 ) + day = v2; + + /* set to yesterday */ + else { + day = tp->tm_mday - 1; + if (day == 0) + return (0); + } + } + } + + /* wired */ + else { + day = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7); + *varp = 1; + } + } + + if (!(flags & F_EASTER)) { + if (day + cumdays[month] > cumdays[month + 1]) { /* off end of month */ + day -= (cumdays[month + 1] - cumdays[month]); /* adjust */ + if (++month > 12) /* next year */ + month = 1; + } + *monthp = month; + *dayp = day; + day = cumdays[month] + day; + } + else { + for (v1 = 0; day > cumdays[v1]; v1++) + ; + *monthp = v1 - 1; + *dayp = day - cumdays[v1 - 1]; + *varp = 1; + } + +#ifdef DEBUG + fprintf(stderr, "day2: day %d(%d-%d) yday %d\n", *dayp, day, + cumdays[month], tp->tm_yday); +#endif + + /* When days before or days after is specified */ + /* no year rollover */ + if (day >= tp->tm_yday - f_dayBefore && + day <= tp->tm_yday + f_dayAfter) + return (1); + + /* next year */ + if (tp->tm_yday + f_dayAfter >= yrdays) { + int end = tp->tm_yday + f_dayAfter - yrdays; + if (day <= end) + return (1); + } + + /* previous year */ + if (tp->tm_yday - f_dayBefore < 0) { + int before = yrdays + (tp->tm_yday - f_dayBefore ); + if (day >= before) + return (1); + } + + return (0); +} + + +int +getmonth(char *s) +{ + const char **p; + struct fixs *n; + + for (n = fnmonths; n->name; ++n) + if (!strncasecmp(s, n->name, n->len)) + return ((n - fnmonths) + 1); + for (n = nmonths; n->name; ++n) + if (!strncasecmp(s, n->name, n->len)) + return ((n - nmonths) + 1); + for (p = months; *p; ++p) + if (!strncasecmp(s, *p, 3)) + return ((p - months) + 1); + return (0); +} + + +int +getday(char *s) +{ + const char **p; + struct fixs *n; + + for (n = fndays; n->name; ++n) + if (!strncasecmp(s, n->name, n->len)) + return ((n - fndays) + 1); + for (n = ndays; n->name; ++n) + if (!strncasecmp(s, n->name, n->len)) + return ((n - ndays) + 1); + for (p = days; *p; ++p) + if (!strncasecmp(s, *p, 3)) + return ((p - days) + 1); + return (0); +} + +/* return offset for variable weekdays + * -1 -> last weekday in month + * +1 -> first weekday in month + * ... etc ... + */ +int +getdayvar(char *s) +{ + int offs; + + + offs = strlen(s); + + + /* Sun+1 or Wednesday-2 + * ^ ^ */ + + /* fprintf(stderr, "x: %s %s %d\n", s, s + offs - 2, offs); */ + switch(*(s + offs - 2)) { + case '-': + return(-(atoi(s + offs - 1))); + case '+': + return(atoi(s + offs - 1)); + } + + + /* + * some aliases: last, first, second, third, fourth + */ + + /* last */ + if (offs > 4 && !strcasecmp(s + offs - 4, "last")) + return(-1); + else if (offs > 5 && !strcasecmp(s + offs - 5, "first")) + return(+1); + else if (offs > 6 && !strcasecmp(s + offs - 6, "second")) + return(+2); + else if (offs > 5 && !strcasecmp(s + offs - 5, "third")) + return(+3); + else if (offs > 6 && !strcasecmp(s + offs - 6, "fourth")) + return(+4); + + + /* no offset detected */ + return(0); +} diff --git a/misc_cmds/calendar/io.c b/misc_cmds/calendar/io.c new file mode 100644 index 0000000..6c8f4d2 --- /dev/null +++ b/misc_cmds/calendar/io.c @@ -0,0 +1,470 @@ +/* + * 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. 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[] = +"@(#) Copyright (c) 1989, 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif + +#if 0 +#ifndef lint +static char sccsid[] = "@(#)calendar.c 8.3 (Berkeley) 3/25/94"; +#endif +#endif + +#include +__FBSDID("$FreeBSD: src/usr.bin/calendar/io.c,v 1.24 2007/12/30 22:04:04 grog Exp $"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "pathnames.h" +#include "calendar.h" + + +const char *calendarFile = "calendar"; /* default calendar file */ +const char *calendarHomes[] = { ".calendar", _PATH_INCLUDE }; /* HOME */ +const char *calendarNoMail = "nomail"; /* don't sent mail if this file exist */ + +struct fixs neaster, npaskha; + +struct iovec header[] = { + {"From: ", 6}, + {NULL, 0}, + {" (Reminder Service)\nTo: ", 24}, + {NULL, 0}, + {"\nSubject: ", 10}, + {NULL, 0}, + {"'s Calendar\nPrecedence: bulk\n\n", 30}, +}; + + +void +cal(void) +{ + int printing; + char *p; + FILE *fp; + int ch, l; + int month; + int day; + int var; + static int d_first = -1; + char buf[2048 + 1]; + struct event *events = NULL; + + if ((fp = opencal()) == NULL) + return; + for (printing = 0; fgets(buf, sizeof(buf), stdin) != NULL;) { + if ((p = strchr(buf, '\n')) != NULL) + *p = '\0'; + else + while ((ch = getchar()) != '\n' && ch != EOF); + for (l = strlen(buf); + l > 0 && isspace((unsigned char)buf[l - 1]); + l--) + ; + buf[l] = '\0'; + if (buf[0] == '\0') + continue; + if (strncmp(buf, "LANG=", 5) == 0) { + (void) setlocale(LC_ALL, buf + 5); + d_first = (*nl_langinfo(D_MD_ORDER) == 'd'); + setnnames(); + continue; + } + if (strncasecmp(buf, "Easter=", 7) == 0 && buf[7]) { + if (neaster.name != NULL) + free(neaster.name); + if ((neaster.name = strdup(buf + 7)) == NULL) + errx(1, "cannot allocate memory"); + neaster.len = strlen(buf + 7); + continue; + } + if (strncasecmp(buf, "Paskha=", 7) == 0 && buf[7]) { + if (npaskha.name != NULL) + free(npaskha.name); + if ((npaskha.name = strdup(buf + 7)) == NULL) + errx(1, "cannot allocate memory"); + npaskha.len = strlen(buf + 7); + continue; + } + if (buf[0] != '\t') { + printing = isnow(buf, &month, &day, &var) ? 1 : 0; + if ((p = strchr(buf, '\t')) == NULL) { +#if DEBUG + fprintf(stderr, "[continue <%s>]\n", buf); +#endif + continue; + } + if (p > buf && p[-1] == '*') + var = 1; + if (printing) { +#if DEBUG + fprintf(stderr, "[Add event]\n"); +#endif + struct tm tm; + char dbuf[80]; + + if (d_first < 0) + d_first = (*nl_langinfo(D_MD_ORDER) == 'd'); + tm.tm_sec = 0; /* unused */ + tm.tm_min = 0; /* unused */ + tm.tm_hour = 0; /* unused */ + tm.tm_wday = 0; /* unused */ + tm.tm_mon = month - 1; + tm.tm_mday = day; + tm.tm_year = tp->tm_year; /* unused */ + (void)strftime(dbuf, sizeof(dbuf), + d_first ? "%e %b" : "%b %e", + &tm); + events = event_add(events, month, day, dbuf, var, p); + } + } + else if (printing) + event_continue(events, buf); + } + + event_print_all(fp, events); + closecal(fp); +} + +/* + * Functions to handle buffered calendar events. + */ +struct event * +event_add(struct event *events, int month, int day, char *date, int var, char *txt) +{ + struct event *e; + + e = (struct event *)calloc(1, sizeof(struct event)); + if (e == NULL) + errx(1, "event_add: cannot allocate memory"); + e->month = month; + e->day = day; + e->var = var; + e->date = strdup(date); + if (e->date == NULL) + errx(1, "event_add: cannot allocate memory"); + e->text = strdup(txt); + if (e->text == NULL) + errx(1, "event_add: cannot allocate memory"); + e->next = events; + + return e; +} + +void +event_continue(struct event *e, char *txt) +{ + char *text; + + text = strdup(e->text); + if (text == NULL) + errx(1, "event_continue: cannot allocate memory"); + + free(e->text); + e->text = (char *)malloc(strlen(text) + strlen(txt) + 3); + if (e->text == NULL) + errx(1, "event_continue: cannot allocate memory"); + strcpy(e->text, text); + strcat(e->text, "\n"); + strcat(e->text, txt); + free(text); + + return; +} + +void +event_print_all(FILE *fp, struct event *events) +{ + struct event *e, *e_next; + int daycount = f_dayAfter + f_dayBefore; + int daycounter; + int day, month; + + for (daycounter = 0; daycounter <= daycount; daycounter++) { + day = tp->tm_yday - f_dayBefore + daycounter; + if (day < 0) day += yrdays; + if (day >= yrdays) day -= yrdays; + + month = 1; + while (month <= 12) { + if (day <= cumdays[month]) + break; + month++; + } + month--; + day -= cumdays[month]; + +#ifdef DEBUG + fprintf(stderr,"event_print_allmonth: %d, day: %d\n",month,day); +#endif + + for (e = events; e != NULL; e = e_next ) { + e_next = e->next; + + if (month != e->month || day != e->day) + continue; + + (void)fprintf(fp, "%s%c%s\n", e->date, + e->var ? '*' : ' ', e->text); + } + } +} + +int +getfield(char *p, char **endp, int *flags) +{ + int val, var; + char *start, savech; + + for (; !isdigit((unsigned char)*p) && !isalpha((unsigned char)*p) + && *p != '*'; ++p); + if (*p == '*') { /* `*' is current month */ + *flags |= F_ISMONTH; + *endp = p+1; + return (tp->tm_mon + 1); + } + if (isdigit((unsigned char)*p)) { + val = strtol(p, &p, 10); /* if 0, it's failure */ + for (; !isdigit((unsigned char)*p) + && !isalpha((unsigned char)*p) && *p != '*'; ++p); + *endp = p; + return (val); + } + for (start = p; isalpha((unsigned char)*++p);); + + /* Sunday-1 */ + if (*p == '+' || *p == '-') + for(; isdigit((unsigned char)*++p);); + + savech = *p; + *p = '\0'; + + /* Month */ + if ((val = getmonth(start)) != 0) + *flags |= F_ISMONTH; + + /* Day */ + else if ((val = getday(start)) != 0) { + *flags |= F_ISDAY; + + /* variable weekday */ + if ((var = getdayvar(start)) != 0) { + if (var <=5 && var >= -4) + val += var * 10; +#ifdef DEBUG + printf("var: %d\n", var); +#endif + } + } + + /* Easter */ + else if ((val = geteaster(start, tp->tm_year + 1900)) != 0) + *flags |= F_EASTER; + + /* Paskha */ + else if ((val = getpaskha(start, tp->tm_year + 1900)) != 0) + *flags |= F_EASTER; + + /* undefined rest */ + else { + *p = savech; + return (0); + } + for (*p = savech; !isdigit((unsigned char)*p) + && !isalpha((unsigned char)*p) && *p != '*'; ++p); + *endp = p; + return (val); +} + +char path[MAXPATHLEN]; + +FILE * +opencal(void) +{ + uid_t uid; + size_t i; + int fd, found, pdes[2]; + struct stat sbuf; + + /* open up calendar file as stdin */ + if (!freopen(calendarFile, "r", stdin)) { + if (doall) { + if (chdir(calendarHomes[0]) != 0) + return (NULL); + if (stat(calendarNoMail, &sbuf) == 0) + return (NULL); + if (!freopen(calendarFile, "r", stdin)) + return (NULL); + } else { + char *home = getenv("HOME"); + if (home == NULL || *home == '\0') + errx(1, "cannot get home directory"); + chdir(home); + for (found = i = 0; i < sizeof(calendarHomes) / + sizeof(calendarHomes[0]); i++) + if (chdir(calendarHomes[i]) == 0 && + freopen(calendarFile, "r", stdin)) { + found = 1; + break; + } + if (!found) + errx(1, "can't open calendar file \"%s\": %s (%d)", + calendarFile, strerror(errno), errno); + } + } + if (pipe(pdes) < 0) + return (NULL); + switch (fork()) { + case -1: /* error */ + (void)close(pdes[0]); + (void)close(pdes[1]); + return (NULL); + case 0: + /* child -- stdin already setup, set stdout to pipe input */ + if (pdes[1] != STDOUT_FILENO) { + (void)dup2(pdes[1], STDOUT_FILENO); + (void)close(pdes[1]); + } + (void)close(pdes[0]); + uid = geteuid(); + if (setuid(getuid()) < 0) { + warnx("first setuid failed"); + _exit(1); + }; + if (setgid(getegid()) < 0) { + warnx("setgid failed"); + _exit(1); + } + if (setuid(uid) < 0) { + warnx("setuid failed"); + _exit(1); + } + execl(_PATH_CPP, "cpp", "-w", "-P", + "-traditional", "-nostdinc", /* GCC specific opts */ + "-I.", "-I" _PATH_INCLUDE, (char *)NULL); + warn(_PATH_CPP); + _exit(1); + } + /* parent -- set stdin to pipe output */ + (void)dup2(pdes[0], STDIN_FILENO); + (void)close(pdes[0]); + (void)close(pdes[1]); + + /* not reading all calendar files, just set output to stdout */ + if (!doall) + return (stdout); + + /* set output to a temporary file, so if no output don't send mail */ + (void)snprintf(path, sizeof(path), "%s/_calXXXXXX", _PATH_TMP); + if ((fd = mkstemp(path)) < 0) + return (NULL); + return (fdopen(fd, "w+")); +} + +void +closecal(FILE *fp) +{ + uid_t uid; + struct stat sbuf; + int nread, pdes[2], status; + char buf[1024]; + + if (!doall) + return; + + (void)rewind(fp); + if (fstat(fileno(fp), &sbuf) || !sbuf.st_size) + goto done; + if (pipe(pdes) < 0) + goto done; + switch (fork()) { + case -1: /* error */ + (void)close(pdes[0]); + (void)close(pdes[1]); + goto done; + case 0: + /* child -- set stdin to pipe output */ + if (pdes[0] != STDIN_FILENO) { + (void)dup2(pdes[0], STDIN_FILENO); + (void)close(pdes[0]); + } + (void)close(pdes[1]); + uid = geteuid(); + if (setuid(getuid()) < 0) { + warnx("setuid failed"); + _exit(1); + }; + if (setgid(getegid()) < 0) { + warnx("setgid failed"); + _exit(1); + } + if (setuid(uid) < 0) { + warnx("setuid failed"); + _exit(1); + } + execl(_PATH_SENDMAIL, "sendmail", "-i", "-t", "-F", + "\"Reminder Service\"", (char *)NULL); + warn(_PATH_SENDMAIL); + _exit(1); + } + /* parent -- write to pipe input */ + (void)close(pdes[0]); + + header[1].iov_base = header[3].iov_base = pw->pw_name; + header[1].iov_len = header[3].iov_len = strlen(pw->pw_name); + writev(pdes[1], header, 7); + while ((nread = read(fileno(fp), buf, sizeof(buf))) > 0) + (void)write(pdes[1], buf, nread); + (void)close(pdes[1]); +done: (void)fclose(fp); + (void)unlink(path); + while (wait(&status) >= 0); +} diff --git a/misc_cmds/calendar/ostern.c b/misc_cmds/calendar/ostern.c new file mode 100644 index 0000000..0f9d17e --- /dev/null +++ b/misc_cmds/calendar/ostern.c @@ -0,0 +1,111 @@ +/* + * Copyright (c) 1996 Wolfram Schneider . Berlin. + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. + */ + +#include +__FBSDID("$FreeBSD: src/usr.bin/calendar/ostern.c,v 1.12 2007/05/07 11:18:30 dwmalone Exp $"); + +#include +#include +#include +#include + +#include "calendar.h" + +/* return year day for Easter */ + +/* + * This code is based on the Calendar FAQ's code for how to calculate + * easter is. This is the Gregorian calendar version. They refer to + * the Algorithm of Oudin in the "Explanatory Supplement to the + * Astronomical Almanac". + */ + +int +easter(int year) /* 0 ... abcd, NOT since 1900 */ +{ + int G, /* Golden number - 1 */ + C, /* Century */ + H, /* 23 - epact % 30 */ + I, /* days from 21 March to Paschal full moon */ + J, /* weekday of full moon */ + L; /* days from 21 March to Sunday on of before full moon */ + + G = year % 19; + C = year / 100; + H = (C - C/4 - (8*C+13)/25 + 19*G + 15) % 30; + I = H - (H/28)*(1 - (H/28)*(29/(H + 1))*((21 - G)/11)); + J = (year + year/4 + I + 2 - C + C/4) % 7; + + L = I - J; + + if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) + return 31 + 29 + 21 + L + 7; + else + return 31 + 28 + 21 + L + 7; +} + +/* return year day for Easter or easter depending days + * Match: Easter([+-][0-9]+)? + * e.g: Easter-2 is Good Friday (2 days before Easter) + */ + +int +geteaster(char *s, int year) +{ + int offset = 0; + +#define EASTER "easter" +#define EASTERNAMELEN (sizeof(EASTER) - 1) + + if (strncasecmp(s, EASTER, EASTERNAMELEN) == 0) + s += EASTERNAMELEN; + else if ( neaster.name != NULL + && strncasecmp(s, neaster.name, neaster.len) == 0 + ) + s += neaster.len; + else + return(0); + +#if DEBUG + printf("%s %d %d\n", s, year, EASTERNAMELEN); +#endif + + /* Easter+1 or Easter-2 + * ^ ^ */ + + switch(*s) { + + case '-': + case '+': + offset = atoi(s); + break; + + default: + offset = 0; + } + + return (easter(year) + offset); +} diff --git a/misc_cmds/calendar/paskha.c b/misc_cmds/calendar/paskha.c new file mode 100644 index 0000000..8193fb3 --- /dev/null +++ b/misc_cmds/calendar/paskha.c @@ -0,0 +1,93 @@ +/* + * Copyright (C) 1993-1996 by Andrey A. Chernov, Moscow, Russia. + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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. + */ + +#include +__FBSDID("$FreeBSD: src/usr.bin/calendar/paskha.c,v 1.8 2007/05/07 11:18:30 dwmalone Exp $"); + +#include +#include +#include +#include + +#include "calendar.h" + +#define PASKHA "paskha" +#define PASKHALEN (sizeof(PASKHA) - 1) + +static int paskha (int); + +/* return year day for Orthodox Easter using Gauss formula */ +/* (old style result) */ + +static int +paskha(int R) /*year*/ +{ + int a, b, c, d, e; + static int x = 15; + static int y = 6; + + a = R % 19; + b = R % 4; + c = R % 7; + d = (19*a + x) % 30; + e = (2*b + 4*c + 6*d + y) % 7; + return (((cumdays[3] + 1) + 22) + (d + e)); +} + +/* return year day for Orthodox Easter depending days */ + +int +getpaskha(char *s, int year) +{ + int offset; + + if (strncasecmp(s, PASKHA, PASKHALEN) == 0) + s += PASKHALEN; + else if ( npaskha.name != NULL + && strncasecmp(s, npaskha.name, npaskha.len) == 0 + ) + s += npaskha.len; + else + return 0; + + + /* Paskha+1 or Paskha-2 + * ^ ^ */ + + switch(*s) { + + case '-': + case '+': + offset = atoi(s); + break; + + default: + offset = 0; + break; + } + + return (paskha(year) + offset + 13/* new style */); +} diff --git a/misc_cmds/calendar/pathnames.h b/misc_cmds/calendar/pathnames.h new file mode 100644 index 0000000..85913f5 --- /dev/null +++ b/misc_cmds/calendar/pathnames.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 1989, 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. 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. + * + * @(#)pathnames.h 8.1 (Berkeley) 6/6/93 + * $FreeBSD: src/usr.bin/calendar/pathnames.h,v 1.4 2001/01/13 01:33:59 ache Exp $ + */ + +#include + +#define _PATH_CPP "/usr/bin/cpp" +#define _PATH_INCLUDE "/usr/share/calendar" diff --git a/misc_cmds/leave/leave.1 b/misc_cmds/leave/leave.1 new file mode 100644 index 0000000..ada7c3f --- /dev/null +++ b/misc_cmds/leave/leave.1 @@ -0,0 +1,100 @@ +.\" Copyright (c) 1980, 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. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. 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. +.\" +.\" @(#)leave.1 8.3 (Berkeley) 4/28/95 +.\" $FreeBSD: src/usr.bin/leave/leave.1,v 1.10 2002/12/23 16:04:51 ru Exp $ +.\" +.Dd April 28, 1995 +.Dt LEAVE 1 +.Os +.Sh NAME +.Nm leave +.Nd remind you when you have to leave +.Sh SYNOPSIS +.Nm +.Op Oo Cm \&+ Oc Ns Ar hhmm +.Sh DESCRIPTION +The +.Nm +utility waits until the specified time, then reminds you that you +have to leave. +You are reminded 5 minutes and 1 minute before the actual +time, at the time, and every minute thereafter. +When you log off, +.Nm +exits just before it would have +printed the next message. +.Pp +The following options are available: +.Bl -tag -width indent +.It Ar hhmm +The time of day is in the form +.Ar hhmm +where +.Ar hh +is a time in +hours (on a 12 or 24 hour clock), and +.Ar mm +are minutes. +All times are converted to a 12 hour clock, and assumed to +be in the next 12 hours. +.It Cm \&+ +If the time is preceded by +.Sq Cm \&+ , +the alarm will go off in hours and minutes +from the current time. +.El +.Pp +If no argument is given, +.Nm +prompts with "When do you +have to leave?". +A reply of newline causes +.Nm +to exit, +otherwise the reply is assumed to be a time. +This form is suitable for inclusion in a +.Pa .login +or +.Pa .profile . +.Pp +To get rid of +.Nm +you should either log off or use +.Ql kill \-s KILL +giving its process id. +.Sh SEE ALSO +.Xr calendar 1 +.Sh HISTORY +The +.Nm +command appeared in +.Bx 3.0 . diff --git a/misc_cmds/leave/leave.c b/misc_cmds/leave/leave.c new file mode 100644 index 0000000..c1db136 --- /dev/null +++ b/misc_cmds/leave/leave.c @@ -0,0 +1,196 @@ +/* + * Copyright (c) 1980, 1988, 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. 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[] = +"@(#) Copyright (c) 1980, 1988, 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif /* not lint */ + +#ifndef lint +#if 0 +static char sccsid[] = "@(#)leave.c 8.1 (Berkeley) 6/6/93"; +#endif +#endif /* not lint */ +#include +__FBSDID("$FreeBSD: src/usr.bin/leave/leave.c,v 1.12 2002/09/04 23:29:03 dwmalone Exp $"); + +#include +#include +#include +#include +#include +#include +#include + +void doalarm(u_int); +static void usage(void); + +/* + * leave [[+]hhmm] + * + * Reminds you when you have to leave. + * Leave prompts for input and goes away if you hit return. + * It nags you like a mother hen. + */ +int +main(int argc, char **argv) +{ + u_int secs; + int hours, minutes; + char c, *cp = NULL; + struct tm *t; + time_t now; + int plusnow, t_12_hour; + char buf[50]; + + if (setlocale(LC_TIME, "") == NULL) + warn("setlocale"); + + if (argc < 2) { +#define MSG1 "When do you have to leave? " + (void)write(STDOUT_FILENO, MSG1, sizeof(MSG1) - 1); + cp = fgets(buf, sizeof(buf), stdin); + if (cp == NULL || *cp == '\n') + exit(0); + } else if (argc > 2) + usage(); + else + cp = argv[1]; + + if (*cp == '+') { + plusnow = 1; + ++cp; + } else + plusnow = 0; + + for (hours = 0; (c = *cp) && c != '\n'; ++cp) { + if (!isdigit(c)) + usage(); + hours = hours * 10 + (c - '0'); + } + minutes = hours % 100; + hours /= 100; + + if (minutes < 0 || minutes > 59) + usage(); + if (plusnow) + secs = hours * 60 * 60 + minutes * 60; + else { + (void)time(&now); + t = localtime(&now); + + if (hours > 23) + usage(); + + /* Convert tol to 12 hr time (0:00...11:59) */ + if (hours > 11) + hours -= 12; + + /* Convert tm to 12 hr time (0:00...11:59) */ + if (t->tm_hour > 11) + t_12_hour = t->tm_hour - 12; + else + t_12_hour = t->tm_hour; + + if (hours < t_12_hour || + (hours == t_12_hour && minutes <= t->tm_min)) + /* Leave time is in the past so we add 12 hrs */ + hours += 12; + + secs = (hours - t_12_hour) * 60 * 60; + secs += (minutes - t->tm_min) * 60; + secs -= now % 60; /* truncate (now + secs) to min */ + } + doalarm(secs); + exit(0); +} + +void +doalarm(u_int secs) +{ + int bother; + time_t daytime; + char tb[80]; + int pid; + + if ((pid = fork())) { + (void)time(&daytime); + daytime += secs; + strftime(tb, sizeof(tb), "%+", localtime(&daytime)); + printf("Alarm set for %s. (pid %d)\n", tb, pid); + exit(0); + } + sleep((u_int)2); /* let parent print set message */ + if (secs >= 2) + secs -= 2; + + /* + * if write fails, we've lost the terminal through someone else + * causing a vhangup by logging in. + */ +#define FIVEMIN (5 * 60) +#define MSG2 "\07\07You have to leave in 5 minutes.\n" + if (secs >= FIVEMIN) { + sleep(secs - FIVEMIN); + if (write(STDOUT_FILENO, MSG2, sizeof(MSG2) - 1) != sizeof(MSG2) - 1) + exit(0); + secs = FIVEMIN; + } + +#define ONEMIN (60) +#define MSG3 "\07\07Just one more minute!\n" + if (secs >= ONEMIN) { + sleep(secs - ONEMIN); + if (write(STDOUT_FILENO, MSG3, sizeof(MSG3) - 1) != sizeof(MSG3) - 1) + exit(0); + } + +#define MSG4 "\07\07Time to leave!\n" + for (bother = 10; bother--;) { + sleep((u_int)ONEMIN); + if (write(STDOUT_FILENO, MSG4, sizeof(MSG4) - 1) != sizeof(MSG4) - 1) + exit(0); + } + +#define MSG5 "\07\07That was the last time I'll tell you. Bye.\n" + (void)write(STDOUT_FILENO, MSG5, sizeof(MSG5) - 1); + exit(0); +} + +static void +usage(void) +{ + fprintf(stderr, "usage: leave [[+]hhmm]\n"); + exit(1); +} diff --git a/misc_cmds/misc_cmds.xcodeproj/project.pbxproj b/misc_cmds/misc_cmds.xcodeproj/project.pbxproj new file mode 100644 index 0000000..7d5a051 --- /dev/null +++ b/misc_cmds/misc_cmds.xcodeproj/project.pbxproj @@ -0,0 +1,971 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXAggregateTarget section */ + 723CE9B30FC36FAF00064057 /* Build All */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 723CE9C10FC36FEB00064057 /* Build configuration list for PBXAggregateTarget "Build All" */; + buildPhases = ( + ); + dependencies = ( + 723CE9BE0FC36FC600064057 /* PBXTargetDependency */, + 723CE9BC0FC36FC600064057 /* PBXTargetDependency */, + 723CE9BA0FC36FC600064057 /* PBXTargetDependency */, + 723CE9B80FC36FC600064057 /* PBXTargetDependency */, + 53D2642B112DD86900FFBD9F /* PBXTargetDependency */, + 723CE9B60FC36FC600064057 /* PBXTargetDependency */, + ); + name = "Build All"; + productName = "Build All"; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 3E59B92E1D4939A700D3128C /* libncurses.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E59B92D1D4939A700D3128C /* libncurses.dylib */; }; + 3E59B92F1D4939B000D3128C /* libncurses.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E59B92D1D4939A700D3128C /* libncurses.dylib */; }; + 53D2641F112DD84700FFBD9F /* calendar.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE9040FC34BFF00064057 /* calendar.c */; }; + 53D26420112DD84700FFBD9F /* easter.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE9060FC34BFF00064057 /* easter.c */; }; + 53D26421112DD84700FFBD9F /* ncal.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE9080FC34BFF00064057 /* ncal.c */; settings = {COMPILER_FLAGS = "-I$(SRCROOT)/ncal"; }; }; + 723CE8750FC3450300064057 /* leave.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE8590FC3436900064057 /* leave.c */; settings = {COMPILER_FLAGS = "-D__FBSDID=__RCSID -include stdint.h -Du_int=uint32_t"; }; }; + 723CE8870FC3453000064057 /* leave.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = 723CE8580FC3436900064057 /* leave.1 */; }; + 723CE8B90FC3478800064057 /* tsort.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE89D0FC346BA00064057 /* tsort.c */; }; + 723CE8BB0FC347A300064057 /* tsort.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = 723CE89C0FC346BA00064057 /* tsort.1 */; }; + 723CE8D20FC3488100064057 /* units.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE8CA0FC3486000064057 /* units.c */; }; + 723CE8D60FC348D700064057 /* units.1 in Copy manpage */ = {isa = PBXBuildFile; fileRef = 723CE8CB0FC3486D00064057 /* units.1 */; }; + 723CE8EB0FC34A0B00064057 /* units.lib in Copy Unit Files */ = {isa = PBXBuildFile; fileRef = 723CE8E90FC349ED00064057 /* units.lib */; }; + 723CE90C0FC34C1A00064057 /* calendar.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE9040FC34BFF00064057 /* calendar.c */; }; + 723CE90E0FC34C1A00064057 /* easter.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE9060FC34BFF00064057 /* easter.c */; }; + 723CE90F0FC34C1A00064057 /* ncal.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE9080FC34BFF00064057 /* ncal.c */; settings = {COMPILER_FLAGS = "-I$(SRCROOT)/ncal"; }; }; + 723CE9130FC34C5400064057 /* ncal.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = 723CE9070FC34BFF00064057 /* ncal.1 */; }; + 723CE9600FC350FF00064057 /* calendar.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE9590FC350FF00064057 /* calendar.c */; }; + 723CE9610FC350FF00064057 /* day.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE95B0FC350FF00064057 /* day.c */; }; + 723CE9620FC350FF00064057 /* io.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE95C0FC350FF00064057 /* io.c */; }; + 723CE9630FC350FF00064057 /* ostern.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE95D0FC350FF00064057 /* ostern.c */; }; + 723CE9640FC350FF00064057 /* paskha.c in Sources */ = {isa = PBXBuildFile; fileRef = 723CE95E0FC350FF00064057 /* paskha.c */; }; + 723CE9C70FC3792900064057 /* calendar.1 in Copy manpage */ = {isa = PBXBuildFile; fileRef = 723CE9C30FC378FD00064057 /* calendar.1 */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 53D2642A112DD86900FFBD9F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 723CE84B0FC342D200064057 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 53D2641D112DD84700FFBD9F; + remoteInfo = cal; + }; + 723CE9B50FC36FC600064057 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 723CE84B0FC342D200064057 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 723CE94A0FC3505500064057; + remoteInfo = calendar; + }; + 723CE9B70FC36FC600064057 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 723CE84B0FC342D200064057 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 723CE8F20FC34BD300064057; + remoteInfo = ncal; + }; + 723CE9B90FC36FC600064057 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 723CE84B0FC342D200064057 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 723CE8CE0FC3487200064057; + remoteInfo = units; + }; + 723CE9BB0FC36FC600064057 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 723CE84B0FC342D200064057 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 723CE8B40FC3476900064057; + remoteInfo = tsort; + }; + 723CE9BD0FC36FC600064057 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 723CE84B0FC342D200064057 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 723CE85C0FC3437B00064057; + remoteInfo = leave; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 723CE8880FC3454E00064057 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + 723CE8870FC3453000064057 /* leave.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + 723CE8C20FC347C600064057 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + 723CE8BB0FC347A300064057 /* tsort.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + 723CE8D40FC348B200064057 /* Copy manpage */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + 723CE8D60FC348D700064057 /* units.1 in Copy manpage */, + ); + name = "Copy manpage"; + runOnlyForDeploymentPostprocessing = 1; + }; + 723CE8E20FC3496B00064057 /* Copy Unit Files */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = /usr/share/misc/; + dstSubfolderSpec = 0; + files = ( + 723CE8EB0FC34A0B00064057 /* units.lib in Copy Unit Files */, + ); + name = "Copy Unit Files"; + runOnlyForDeploymentPostprocessing = 1; + }; + 723CE91D0FC34C9600064057 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = /usr/share/man/man1; + dstSubfolderSpec = 0; + files = ( + 723CE9130FC34C5400064057 /* ncal.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + 723CE9DA0FC379A200064057 /* Copy manpage */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + 723CE9C70FC3792900064057 /* calendar.1 in Copy manpage */, + ); + name = "Copy manpage"; + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 3E59B92D1D4939A700D3128C /* libncurses.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libncurses.dylib; path = usr/lib/libncurses.dylib; sourceTree = SDKROOT; }; + 53D26428112DD84700FFBD9F /* cal */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cal; sourceTree = BUILT_PRODUCTS_DIR; }; + 723CE8580FC3436900064057 /* leave.1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.man; path = leave.1; sourceTree = ""; }; + 723CE8590FC3436900064057 /* leave.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = leave.c; sourceTree = ""; }; + 723CE85D0FC3437B00064057 /* leave */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = leave; sourceTree = BUILT_PRODUCTS_DIR; }; + 723CE89C0FC346BA00064057 /* tsort.1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.man; path = tsort.1; sourceTree = ""; }; + 723CE89D0FC346BA00064057 /* tsort.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tsort.c; sourceTree = ""; }; + 723CE8B50FC3476900064057 /* tsort */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = tsort; sourceTree = BUILT_PRODUCTS_DIR; }; + 723CE8CA0FC3486000064057 /* units.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = units.c; sourceTree = ""; }; + 723CE8CB0FC3486D00064057 /* units.1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.man; path = units.1; sourceTree = ""; }; + 723CE8CF0FC3487200064057 /* units */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = units; sourceTree = BUILT_PRODUCTS_DIR; }; + 723CE8DD0FC3491B00064057 /* pathnames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pathnames.h; sourceTree = ""; }; + 723CE8E90FC349ED00064057 /* units.lib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = units.lib; sourceTree = ""; }; + 723CE8EA0FC34A0600064057 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; + 723CE8F30FC34BD300064057 /* ncal */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = ncal; sourceTree = BUILT_PRODUCTS_DIR; }; + 723CE9040FC34BFF00064057 /* calendar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = calendar.c; sourceTree = ""; }; + 723CE9050FC34BFF00064057 /* calendar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = calendar.h; sourceTree = ""; }; + 723CE9060FC34BFF00064057 /* easter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = easter.c; sourceTree = ""; }; + 723CE9070FC34BFF00064057 /* ncal.1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.man; path = ncal.1; sourceTree = ""; }; + 723CE9080FC34BFF00064057 /* ncal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ncal.c; sourceTree = ""; }; + 723CE94B0FC3505500064057 /* calendar */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = calendar; sourceTree = BUILT_PRODUCTS_DIR; }; + 723CE9590FC350FF00064057 /* calendar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = calendar.c; sourceTree = ""; }; + 723CE95A0FC350FF00064057 /* calendar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = calendar.h; sourceTree = ""; }; + 723CE95B0FC350FF00064057 /* day.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = day.c; sourceTree = ""; }; + 723CE95C0FC350FF00064057 /* io.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = io.c; sourceTree = ""; }; + 723CE95D0FC350FF00064057 /* ostern.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ostern.c; sourceTree = ""; }; + 723CE95E0FC350FF00064057 /* paskha.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = paskha.c; sourceTree = ""; }; + 723CE95F0FC350FF00064057 /* pathnames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pathnames.h; sourceTree = ""; }; + 723CE96A0FC36C6400064057 /* calendar.all */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.all; sourceTree = ""; }; + 723CE96B0FC36C6400064057 /* calendar.australia */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.australia; sourceTree = ""; }; + 723CE96C0FC36C6400064057 /* calendar.birthday */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.birthday; sourceTree = ""; }; + 723CE96D0FC36C6400064057 /* calendar.christian */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.christian; sourceTree = ""; }; + 723CE96E0FC36C6400064057 /* calendar.computer */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.computer; sourceTree = ""; }; + 723CE96F0FC36C6400064057 /* calendar.croatian */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.croatian; sourceTree = ""; }; + 723CE9700FC36C6400064057 /* calendar.dutch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.dutch; sourceTree = ""; }; + 723CE9710FC36C6400064057 /* calendar.freebsd */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.freebsd; sourceTree = ""; }; + 723CE9720FC36C6400064057 /* calendar.french */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.french; sourceTree = ""; }; + 723CE9730FC36C6400064057 /* calendar.german */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.german; sourceTree = ""; }; + 723CE9740FC36C6400064057 /* calendar.history */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.history; sourceTree = ""; }; + 723CE9750FC36C6400064057 /* calendar.holiday */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.holiday; sourceTree = ""; }; + 723CE9760FC36C6400064057 /* calendar.hungarian */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.hungarian; sourceTree = ""; }; + 723CE9770FC36C6400064057 /* calendar.judaic */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.judaic; sourceTree = ""; }; + 723CE9780FC36C6400064057 /* calendar.lotr */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.lotr; sourceTree = ""; }; + 723CE9790FC36C6400064057 /* calendar.music */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.music; sourceTree = ""; }; + 723CE97A0FC36C6400064057 /* calendar.newzealand */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.newzealand; sourceTree = ""; }; + 723CE97B0FC36C6400064057 /* calendar.russian */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.russian; sourceTree = ""; }; + 723CE97C0FC36C6400064057 /* calendar.southafrica */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.southafrica; sourceTree = ""; }; + 723CE97D0FC36C6400064057 /* calendar.ukrainian */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.ukrainian; sourceTree = ""; }; + 723CE97E0FC36C6400064057 /* calendar.usholiday */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.usholiday; sourceTree = ""; }; + 723CE97F0FC36C6400064057 /* calendar.world */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.world; sourceTree = ""; }; + 723CE9810FC36C6400064057 /* calendar.feiertag */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.feiertag; sourceTree = ""; }; + 723CE9830FC36C6400064057 /* calendar.all */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.all; sourceTree = ""; }; + 723CE9840FC36C6400064057 /* calendar.feiertag */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.feiertag; sourceTree = ""; }; + 723CE9850FC36C6400064057 /* calendar.geschichte */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.geschichte; sourceTree = ""; }; + 723CE9860FC36C6400064057 /* calendar.kirche */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.kirche; sourceTree = ""; }; + 723CE9870FC36C6400064057 /* calendar.literatur */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.literatur; sourceTree = ""; }; + 723CE9880FC36C6400064057 /* calendar.musik */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.musik; sourceTree = ""; }; + 723CE9890FC36C6400064057 /* calendar.wissenschaft */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.wissenschaft; sourceTree = ""; }; + 723CE98B0FC36C6400064057 /* calendar.all */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.all; sourceTree = ""; }; + 723CE98C0FC36C6400064057 /* calendar.fetes */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.fetes; sourceTree = ""; }; + 723CE98D0FC36C6400064057 /* calendar.french */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.french; sourceTree = ""; }; + 723CE98E0FC36C6400064057 /* calendar.jferies */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.jferies; sourceTree = ""; }; + 723CE98F0FC36C6400064057 /* calendar.proverbes */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.proverbes; sourceTree = ""; }; + 723CE9910FC36C6400064057 /* calendar.all */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.all; sourceTree = ""; }; + 723CE9920FC36C6400064057 /* calendar.praznici */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.praznici; sourceTree = ""; }; + 723CE9940FC36C6400064057 /* calendar.all */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.all; sourceTree = ""; }; + 723CE9950FC36C6400064057 /* calendar.nevnapok */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.nevnapok; sourceTree = ""; }; + 723CE9960FC36C6400064057 /* calendar.unnepek */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.unnepek; sourceTree = ""; }; + 723CE9980FC36C6400064057 /* calendar.all */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.all; sourceTree = ""; }; + 723CE9990FC36C6400064057 /* calendar.common */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.common; sourceTree = ""; }; + 723CE99A0FC36C6400064057 /* calendar.holiday */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.holiday; sourceTree = ""; }; + 723CE99B0FC36C6400064057 /* calendar.military */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.military; sourceTree = ""; }; + 723CE99C0FC36C6400064057 /* calendar.msk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.msk; sourceTree = ""; }; + 723CE99D0FC36C6400064057 /* calendar.orthodox */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.orthodox; sourceTree = ""; }; + 723CE99E0FC36C6400064057 /* calendar.pagan */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.pagan; sourceTree = ""; }; + 723CE9A00FC36C6400064057 /* calendar.all */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.all; sourceTree = ""; }; + 723CE9A10FC36C6400064057 /* calendar.holiday */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.holiday; sourceTree = ""; }; + 723CE9A20FC36C6400064057 /* calendar.misc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.misc; sourceTree = ""; }; + 723CE9A30FC36C6400064057 /* calendar.orthodox */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = calendar.orthodox; sourceTree = ""; }; + 723CE9C30FC378FD00064057 /* calendar.1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.man; path = calendar.1; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 53D26422112DD84700FFBD9F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3E59B92E1D4939A700D3128C /* libncurses.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723CE85B0FC3437B00064057 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723CE8B30FC3476900064057 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723CE8CD0FC3487200064057 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723CE8F10FC34BD300064057 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3E59B92F1D4939B000D3128C /* libncurses.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723CE9490FC3505500064057 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 3E59B92C1D4939A700D3128C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3E59B92D1D4939A700D3128C /* libncurses.dylib */, + ); + name = Frameworks; + sourceTree = ""; + }; + 723CE8490FC342D200064057 = { + isa = PBXGroup; + children = ( + 723CE8530FC3432200064057 /* Source */, + 723CE85E0FC3437B00064057 /* Products */, + 3E59B92C1D4939A700D3128C /* Frameworks */, + ); + sourceTree = ""; + }; + 723CE8530FC3432200064057 /* Source */ = { + isa = PBXGroup; + children = ( + 723CE94F0FC3509E00064057 /* calendar */, + 723CE8F60FC34BE400064057 /* ncal */, + 723CE8C30FC3481100064057 /* units */, + 723CE8540FC3432D00064057 /* leave */, + 723CE8970FC3469A00064057 /* tsort */, + ); + name = Source; + sourceTree = ""; + }; + 723CE8540FC3432D00064057 /* leave */ = { + isa = PBXGroup; + children = ( + 723CE8580FC3436900064057 /* leave.1 */, + 723CE8590FC3436900064057 /* leave.c */, + ); + path = leave; + sourceTree = ""; + }; + 723CE85E0FC3437B00064057 /* Products */ = { + isa = PBXGroup; + children = ( + 723CE85D0FC3437B00064057 /* leave */, + 723CE8B50FC3476900064057 /* tsort */, + 723CE8CF0FC3487200064057 /* units */, + 723CE8F30FC34BD300064057 /* ncal */, + 723CE94B0FC3505500064057 /* calendar */, + 53D26428112DD84700FFBD9F /* cal */, + ); + name = Products; + sourceTree = ""; + }; + 723CE8970FC3469A00064057 /* tsort */ = { + isa = PBXGroup; + children = ( + 723CE89C0FC346BA00064057 /* tsort.1 */, + 723CE89D0FC346BA00064057 /* tsort.c */, + ); + path = tsort; + sourceTree = ""; + }; + 723CE8C30FC3481100064057 /* units */ = { + isa = PBXGroup; + children = ( + 723CE8EA0FC34A0600064057 /* README */, + 723CE8E90FC349ED00064057 /* units.lib */, + 723CE8DD0FC3491B00064057 /* pathnames.h */, + 723CE8CA0FC3486000064057 /* units.c */, + 723CE8CB0FC3486D00064057 /* units.1 */, + ); + path = units; + sourceTree = ""; + }; + 723CE8F60FC34BE400064057 /* ncal */ = { + isa = PBXGroup; + children = ( + 723CE9040FC34BFF00064057 /* calendar.c */, + 723CE9050FC34BFF00064057 /* calendar.h */, + 723CE9060FC34BFF00064057 /* easter.c */, + 723CE9070FC34BFF00064057 /* ncal.1 */, + 723CE9080FC34BFF00064057 /* ncal.c */, + ); + path = ncal; + sourceTree = ""; + }; + 723CE94F0FC3509E00064057 /* calendar */ = { + isa = PBXGroup; + children = ( + 723CE9C30FC378FD00064057 /* calendar.1 */, + 723CE9690FC36C6400064057 /* calendars */, + 723CE9590FC350FF00064057 /* calendar.c */, + 723CE95A0FC350FF00064057 /* calendar.h */, + 723CE95B0FC350FF00064057 /* day.c */, + 723CE95C0FC350FF00064057 /* io.c */, + 723CE95D0FC350FF00064057 /* ostern.c */, + 723CE95E0FC350FF00064057 /* paskha.c */, + 723CE95F0FC350FF00064057 /* pathnames.h */, + ); + path = calendar; + sourceTree = ""; + }; + 723CE9690FC36C6400064057 /* calendars */ = { + isa = PBXGroup; + children = ( + 723CE96A0FC36C6400064057 /* calendar.all */, + 723CE96B0FC36C6400064057 /* calendar.australia */, + 723CE96C0FC36C6400064057 /* calendar.birthday */, + 723CE96D0FC36C6400064057 /* calendar.christian */, + 723CE96E0FC36C6400064057 /* calendar.computer */, + 723CE96F0FC36C6400064057 /* calendar.croatian */, + 723CE9700FC36C6400064057 /* calendar.dutch */, + 723CE9710FC36C6400064057 /* calendar.freebsd */, + 723CE9720FC36C6400064057 /* calendar.french */, + 723CE9730FC36C6400064057 /* calendar.german */, + 723CE9740FC36C6400064057 /* calendar.history */, + 723CE9750FC36C6400064057 /* calendar.holiday */, + 723CE9760FC36C6400064057 /* calendar.hungarian */, + 723CE9770FC36C6400064057 /* calendar.judaic */, + 723CE9780FC36C6400064057 /* calendar.lotr */, + 723CE9790FC36C6400064057 /* calendar.music */, + 723CE97A0FC36C6400064057 /* calendar.newzealand */, + 723CE97B0FC36C6400064057 /* calendar.russian */, + 723CE97C0FC36C6400064057 /* calendar.southafrica */, + 723CE97D0FC36C6400064057 /* calendar.ukrainian */, + 723CE97E0FC36C6400064057 /* calendar.usholiday */, + 723CE97F0FC36C6400064057 /* calendar.world */, + 723CE9800FC36C6400064057 /* de_AT.ISO_8859-15 */, + 723CE9820FC36C6400064057 /* de_DE.ISO8859-1 */, + 723CE98A0FC36C6400064057 /* fr_FR.ISO8859-1 */, + 723CE9900FC36C6400064057 /* hr_HR.ISO8859-2 */, + 723CE9930FC36C6400064057 /* hu_HU.ISO8859-2 */, + 723CE9970FC36C6400064057 /* ru_RU.KOI8-R */, + 723CE99F0FC36C6400064057 /* uk_UA.KOI8-U */, + ); + path = calendars; + sourceTree = ""; + }; + 723CE9800FC36C6400064057 /* de_AT.ISO_8859-15 */ = { + isa = PBXGroup; + children = ( + 723CE9810FC36C6400064057 /* calendar.feiertag */, + ); + path = "de_AT.ISO_8859-15"; + sourceTree = ""; + }; + 723CE9820FC36C6400064057 /* de_DE.ISO8859-1 */ = { + isa = PBXGroup; + children = ( + 723CE9830FC36C6400064057 /* calendar.all */, + 723CE9840FC36C6400064057 /* calendar.feiertag */, + 723CE9850FC36C6400064057 /* calendar.geschichte */, + 723CE9860FC36C6400064057 /* calendar.kirche */, + 723CE9870FC36C6400064057 /* calendar.literatur */, + 723CE9880FC36C6400064057 /* calendar.musik */, + 723CE9890FC36C6400064057 /* calendar.wissenschaft */, + ); + path = "de_DE.ISO8859-1"; + sourceTree = ""; + }; + 723CE98A0FC36C6400064057 /* fr_FR.ISO8859-1 */ = { + isa = PBXGroup; + children = ( + 723CE98B0FC36C6400064057 /* calendar.all */, + 723CE98C0FC36C6400064057 /* calendar.fetes */, + 723CE98D0FC36C6400064057 /* calendar.french */, + 723CE98E0FC36C6400064057 /* calendar.jferies */, + 723CE98F0FC36C6400064057 /* calendar.proverbes */, + ); + path = "fr_FR.ISO8859-1"; + sourceTree = ""; + }; + 723CE9900FC36C6400064057 /* hr_HR.ISO8859-2 */ = { + isa = PBXGroup; + children = ( + 723CE9910FC36C6400064057 /* calendar.all */, + 723CE9920FC36C6400064057 /* calendar.praznici */, + ); + path = "hr_HR.ISO8859-2"; + sourceTree = ""; + }; + 723CE9930FC36C6400064057 /* hu_HU.ISO8859-2 */ = { + isa = PBXGroup; + children = ( + 723CE9940FC36C6400064057 /* calendar.all */, + 723CE9950FC36C6400064057 /* calendar.nevnapok */, + 723CE9960FC36C6400064057 /* calendar.unnepek */, + ); + path = "hu_HU.ISO8859-2"; + sourceTree = ""; + }; + 723CE9970FC36C6400064057 /* ru_RU.KOI8-R */ = { + isa = PBXGroup; + children = ( + 723CE9980FC36C6400064057 /* calendar.all */, + 723CE9990FC36C6400064057 /* calendar.common */, + 723CE99A0FC36C6400064057 /* calendar.holiday */, + 723CE99B0FC36C6400064057 /* calendar.military */, + 723CE99C0FC36C6400064057 /* calendar.msk */, + 723CE99D0FC36C6400064057 /* calendar.orthodox */, + 723CE99E0FC36C6400064057 /* calendar.pagan */, + ); + path = "ru_RU.KOI8-R"; + sourceTree = ""; + }; + 723CE99F0FC36C6400064057 /* uk_UA.KOI8-U */ = { + isa = PBXGroup; + children = ( + 723CE9A00FC36C6400064057 /* calendar.all */, + 723CE9A10FC36C6400064057 /* calendar.holiday */, + 723CE9A20FC36C6400064057 /* calendar.misc */, + 723CE9A30FC36C6400064057 /* calendar.orthodox */, + ); + path = "uk_UA.KOI8-U"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 53D2641D112DD84700FFBD9F /* cal */ = { + isa = PBXNativeTarget; + buildConfigurationList = 53D26426112DD84700FFBD9F /* Build configuration list for PBXNativeTarget "cal" */; + buildPhases = ( + 53D2641E112DD84700FFBD9F /* Sources */, + 53D26422112DD84700FFBD9F /* Frameworks */, + 53D26425112DD84700FFBD9F /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = cal; + productName = ncal; + productReference = 53D26428112DD84700FFBD9F /* cal */; + productType = "com.apple.product-type.tool"; + }; + 723CE85C0FC3437B00064057 /* leave */ = { + isa = PBXNativeTarget; + buildConfigurationList = 723CE8620FC3437C00064057 /* Build configuration list for PBXNativeTarget "leave" */; + buildPhases = ( + 723CE85A0FC3437B00064057 /* Sources */, + 723CE85B0FC3437B00064057 /* Frameworks */, + 723CE8880FC3454E00064057 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = leave; + productName = leave; + productReference = 723CE85D0FC3437B00064057 /* leave */; + productType = "com.apple.product-type.tool"; + }; + 723CE8B40FC3476900064057 /* tsort */ = { + isa = PBXNativeTarget; + buildConfigurationList = 723CE8B80FC3478800064057 /* Build configuration list for PBXNativeTarget "tsort" */; + buildPhases = ( + 723CE8B20FC3476900064057 /* Sources */, + 723CE8B30FC3476900064057 /* Frameworks */, + 723CE8C20FC347C600064057 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = tsort; + productName = tsort; + productReference = 723CE8B50FC3476900064057 /* tsort */; + productType = "com.apple.product-type.tool"; + }; + 723CE8CE0FC3487200064057 /* units */ = { + isa = PBXNativeTarget; + buildConfigurationList = 723CE8D50FC348B200064057 /* Build configuration list for PBXNativeTarget "units" */; + buildPhases = ( + 723CE8CC0FC3487200064057 /* Sources */, + 723CE8CD0FC3487200064057 /* Frameworks */, + 723CE8D40FC348B200064057 /* Copy manpage */, + 723CE8E20FC3496B00064057 /* Copy Unit Files */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = units; + productName = units; + productReference = 723CE8CF0FC3487200064057 /* units */; + productType = "com.apple.product-type.tool"; + }; + 723CE8F20FC34BD300064057 /* ncal */ = { + isa = PBXNativeTarget; + buildConfigurationList = 723CE8F70FC34BE400064057 /* Build configuration list for PBXNativeTarget "ncal" */; + buildPhases = ( + 723CE8F00FC34BD300064057 /* Sources */, + 723CE8F10FC34BD300064057 /* Frameworks */, + 723CE91D0FC34C9600064057 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ncal; + productName = ncal; + productReference = 723CE8F30FC34BD300064057 /* ncal */; + productType = "com.apple.product-type.tool"; + }; + 723CE94A0FC3505500064057 /* calendar */ = { + isa = PBXNativeTarget; + buildConfigurationList = 723CE94E0FC3507300064057 /* Build configuration list for PBXNativeTarget "calendar" */; + buildPhases = ( + 723CE9480FC3505500064057 /* Sources */, + 723CE9490FC3505500064057 /* Frameworks */, + 723CE9DA0FC379A200064057 /* Copy manpage */, + 72FA601A0FC497B500E6462C /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = calendar; + productName = calendar; + productReference = 723CE94B0FC3505500064057 /* calendar */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 723CE84B0FC342D200064057 /* Project object */ = { + isa = PBXProject; + attributes = { + }; + buildConfigurationList = 723CE84E0FC342D200064057 /* Build configuration list for PBXProject "misc_cmds" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 723CE8490FC342D200064057; + productRefGroup = 723CE85E0FC3437B00064057 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 723CE9B30FC36FAF00064057 /* Build All */, + 723CE85C0FC3437B00064057 /* leave */, + 723CE8B40FC3476900064057 /* tsort */, + 723CE8CE0FC3487200064057 /* units */, + 723CE8F20FC34BD300064057 /* ncal */, + 723CE94A0FC3505500064057 /* calendar */, + 53D2641D112DD84700FFBD9F /* cal */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXShellScriptBuildPhase section */ + 53D26425112DD84700FFBD9F /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cp $DSTROOT/usr/share/man/man1/ncal.1 $DSTROOT/usr/share/man/man1/cal.1"; + }; + 72FA601A0FC497B500E6462C /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 8; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 1; + shellPath = /bin/bash; + shellScript = "mkdir -p $DSTROOT/usr/share/calendar\ncp -R $SRCROOT/calendar/calendars/ $DSTROOT/usr/share/calendar/\nmkdir -p $DSTROOT/usr/share/calendar/de_DE.ISO8859-15\nmkdir -p $DSTROOT/usr/share/calendar/fr_FR.ISO8859-15"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 53D2641E112DD84700FFBD9F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 53D2641F112DD84700FFBD9F /* calendar.c in Sources */, + 53D26420112DD84700FFBD9F /* easter.c in Sources */, + 53D26421112DD84700FFBD9F /* ncal.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723CE85A0FC3437B00064057 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 723CE8750FC3450300064057 /* leave.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723CE8B20FC3476900064057 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 723CE8B90FC3478800064057 /* tsort.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723CE8CC0FC3487200064057 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 723CE8D20FC3488100064057 /* units.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723CE8F00FC34BD300064057 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 723CE90C0FC34C1A00064057 /* calendar.c in Sources */, + 723CE90E0FC34C1A00064057 /* easter.c in Sources */, + 723CE90F0FC34C1A00064057 /* ncal.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 723CE9480FC3505500064057 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 723CE9600FC350FF00064057 /* calendar.c in Sources */, + 723CE9610FC350FF00064057 /* day.c in Sources */, + 723CE9620FC350FF00064057 /* io.c in Sources */, + 723CE9630FC350FF00064057 /* ostern.c in Sources */, + 723CE9640FC350FF00064057 /* paskha.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 53D2642B112DD86900FFBD9F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 53D2641D112DD84700FFBD9F /* cal */; + targetProxy = 53D2642A112DD86900FFBD9F /* PBXContainerItemProxy */; + }; + 723CE9B60FC36FC600064057 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 723CE94A0FC3505500064057 /* calendar */; + targetProxy = 723CE9B50FC36FC600064057 /* PBXContainerItemProxy */; + }; + 723CE9B80FC36FC600064057 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 723CE8F20FC34BD300064057 /* ncal */; + targetProxy = 723CE9B70FC36FC600064057 /* PBXContainerItemProxy */; + }; + 723CE9BA0FC36FC600064057 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 723CE8CE0FC3487200064057 /* units */; + targetProxy = 723CE9B90FC36FC600064057 /* PBXContainerItemProxy */; + }; + 723CE9BC0FC36FC600064057 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 723CE8B40FC3476900064057 /* tsort */; + targetProxy = 723CE9BB0FC36FC600064057 /* PBXContainerItemProxy */; + }; + 723CE9BE0FC36FC600064057 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 723CE85C0FC3437B00064057 /* leave */; + targetProxy = 723CE9BD0FC36FC600064057 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 53D26427112DD84700FFBD9F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/bin; + OTHER_CFLAGS = "-D__FBSDID=__RCSID"; + PREBINDING = NO; + PRODUCT_NAME = cal; + STRIP_INSTALLED_PRODUCT = YES; + ZERO_LINK = NO; + }; + name = Release; + }; + 723CE84D0FC342D200064057 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = "$(RC_ProjectSourceVersion)"; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GENERATE_MASTER_OBJECT_FILE = NO; + INSTALL_MODE_FLAG = "gou-w,a+rX"; + INSTALL_PATH = /usr/bin; + PREBINDING = NO; + USE_HEADERMAP = NO; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_BUILDER = "$(USER)"; + VERSION_INFO_FILE = "$(PRODUCT_NAME)_vers.c"; + VERSION_INFO_PREFIX = __; + ZERO_LINK = NO; + }; + name = Release; + }; + 723CE8610FC3437C00064057 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/bin; + PREBINDING = NO; + PRODUCT_NAME = leave; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = __; + ZERO_LINK = NO; + }; + name = Release; + }; + 723CE8B70FC3476A00064057 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/bin; + PREBINDING = NO; + PRODUCT_NAME = tsort; + ZERO_LINK = NO; + }; + name = Release; + }; + 723CE8D10FC3487300064057 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/bin; + OTHER_CFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = units; + ZERO_LINK = NO; + }; + name = Release; + }; + 723CE8F50FC34BD300064057 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/bin; + OTHER_CFLAGS = "-D__FBSDID=__RCSID"; + PREBINDING = NO; + PRODUCT_NAME = ncal; + STRIP_INSTALLED_PRODUCT = YES; + ZERO_LINK = NO; + }; + name = Release; + }; + 723CE94D0FC3505500064057 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + GCC_PREPROCESSOR_DEFINITIONS = "__FBSDID=__RCSID"; + INSTALL_PATH = /usr/bin; + PREBINDING = NO; + PRODUCT_NAME = calendar; + STRIP_INSTALLED_PRODUCT = YES; + ZERO_LINK = NO; + }; + name = Release; + }; + 723CE9B40FC36FB000064057 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + PRODUCT_NAME = "Build All"; + ZERO_LINK = NO; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 53D26426112DD84700FFBD9F /* Build configuration list for PBXNativeTarget "cal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 53D26427112DD84700FFBD9F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 723CE84E0FC342D200064057 /* Build configuration list for PBXProject "misc_cmds" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 723CE84D0FC342D200064057 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 723CE8620FC3437C00064057 /* Build configuration list for PBXNativeTarget "leave" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 723CE8610FC3437C00064057 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 723CE8B80FC3478800064057 /* Build configuration list for PBXNativeTarget "tsort" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 723CE8B70FC3476A00064057 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 723CE8D50FC348B200064057 /* Build configuration list for PBXNativeTarget "units" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 723CE8D10FC3487300064057 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 723CE8F70FC34BE400064057 /* Build configuration list for PBXNativeTarget "ncal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 723CE8F50FC34BD300064057 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 723CE94E0FC3507300064057 /* Build configuration list for PBXNativeTarget "calendar" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 723CE94D0FC3505500064057 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 723CE9C10FC36FEB00064057 /* Build configuration list for PBXAggregateTarget "Build All" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 723CE9B40FC36FB000064057 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 723CE84B0FC342D200064057 /* Project object */; +} diff --git a/misc_cmds/ncal/calendar.c b/misc_cmds/ncal/calendar.c new file mode 100644 index 0000000..fca63ee --- /dev/null +++ b/misc_cmds/ncal/calendar.c @@ -0,0 +1,330 @@ +/*- + * Copyright (c) 1997 Wolfgang Helbig + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "calendar.h" + +#ifndef NULL +#define NULL 0 +#endif + +/* + * For each month tabulate the number of days elapsed in a year before the + * month. This assumes the internal date representation, where a year + * starts on March 1st. So we don't need a special table for leap years. + * But we do need a special table for the year 1582, since 10 days are + * deleted in October. This is month1s for the switch from Julian to + * Gregorian calendar. + */ +static int const month1[] = + {0, 31, 61, 92, 122, 153, 184, 214, 245, 275, 306, 337}; + /* M A M J J A S O N D J */ +static int const month1s[]= + {0, 31, 61, 92, 122, 153, 184, 214, 235, 265, 296, 327}; + +typedef struct date date; + +/* The last day of Julian calendar, in internal and ndays representation */ +static int nswitch; /* The last day of Julian calendar */ +static date jiswitch = {1582, 7, 3}; + +static date *date2idt(date *idt, date *dt); +static date *idt2date(date *dt, date *idt); +static int ndaysji(date *idt); +static int ndaysgi(date *idt); +static int firstweek(int year); + +/* + * Compute the Julian date from the number of days elapsed since + * March 1st of year zero. + */ +date * +jdate(int ndays, date *dt) +{ + date idt; /* Internal date representation */ + int r; /* hold the rest of days */ + + /* + * Compute the year by starting with an approximation not smaller + * than the answer and using linear search for the greatest + * year which does not begin after ndays. + */ + idt.y = ndays / 365; + idt.m = 0; + idt.d = 0; + while ((r = ndaysji(&idt)) > ndays) + idt.y--; + + /* + * Set r to the days left in the year and compute the month by + * linear search as the largest month that does not begin after r + * days. + */ + r = ndays - r; + for (idt.m = 11; month1[idt.m] > r; idt.m--) + ; + + /* Compute the days left in the month */ + idt.d = r - month1[idt.m]; + + /* return external representation of the date */ + return (idt2date(dt, &idt)); +} + +/* + * Return the number of days since March 1st of the year zero. + * The date is given according to Julian calendar. + */ +int +ndaysj(date *dt) +{ + date idt; /* Internal date representation */ + + if (date2idt(&idt, dt) == NULL) + return (-1); + else + return (ndaysji(&idt)); +} + +/* + * Same as above, where the Julian date is given in internal notation. + * This formula shows the beauty of this notation. + */ +static int +ndaysji(date * idt) +{ + + return (idt->d + month1[idt->m] + idt->y * 365 + idt->y / 4); +} + +/* + * Compute the date according to the Gregorian calendar from the number of + * days since March 1st, year zero. The date computed will be Julian if it + * is older than 1582-10-05. This is the reverse of the function ndaysg(). + */ +date * +gdate(int ndays, date *dt) +{ + int const *montht; /* month-table */ + date idt; /* for internal date representation */ + int r; /* holds the rest of days */ + + /* + * Compute the year by starting with an approximation not smaller + * than the answer and search linearly for the greatest year not + * starting after ndays. + */ + idt.y = ndays / 365; + idt.m = 0; + idt.d = 0; + while ((r = ndaysgi(&idt)) > ndays) + idt.y--; + + /* + * Set ndays to the number of days left and compute by linear + * search the greatest month which does not start after ndays. We + * use the table month1 which provides for each month the number + * of days that elapsed in the year before that month. Here the + * year 1582 is special, as 10 days are left out in October to + * resynchronize the calendar with the earth's orbit. October 4th + * 1582 is followed by October 15th 1582. We use the "switch" + * table month1s for this year. + */ + ndays = ndays - r; + if (idt.y == 1582) + montht = month1s; + else + montht = month1; + + for (idt.m = 11; montht[idt.m] > ndays; idt.m--) + ; + + idt.d = ndays - montht[idt.m]; /* the rest is the day in month */ + + /* Advance ten days deleted from October if after switch in Oct 1582 */ + if (idt.y == jiswitch.y && idt.m == jiswitch.m && jiswitch.d < idt.d) + idt.d += 10; + + /* return external representation of found date */ + return (idt2date(dt, &idt)); +} + +/* + * Return the number of days since March 1st of the year zero. The date is + * assumed Gregorian if younger than 1582-10-04 and Julian otherwise. This + * is the reverse of gdate. + */ +int +ndaysg(date *dt) +{ + date idt; /* Internal date representation */ + + if (date2idt(&idt, dt) == NULL) + return (-1); + return (ndaysgi(&idt)); +} + +/* + * Same as above, but with the Gregorian date given in internal + * representation. + */ +static int +ndaysgi(date *idt) +{ + int nd; /* Number of days--return value */ + + /* Cache nswitch if not already done */ + if (nswitch == 0) + nswitch = ndaysji(&jiswitch); + + /* + * Assume Julian calendar and adapt to Gregorian if necessary, i. e. + * younger than nswitch. Gregori deleted + * the ten days from Oct 5th to Oct 14th 1582. + * Thereafter years which are multiples of 100 and not multiples + * of 400 were not leap years anymore. + * This makes the average length of a year + * 365d +.25d - .01d + .0025d = 365.2425d. But the tropical + * year measures 365.2422d. So in 10000/3 years we are + * again one day ahead of the earth. Sigh :-) + * (d is the average length of a day and tropical year is the + * time from one spring point to the next.) + */ + if ((nd = ndaysji(idt)) == -1) + return (-1); + if (idt->y >= 1600) + nd = (nd - 10 - (idt->y - 1600) / 100 + (idt->y - 1600) / 400); + else if (nd > nswitch) + nd -= 10; + return (nd); +} + +/* + * Compute the week number from the number of days since March 1st year 0. + * The weeks are numbered per year starting with 1. If the first + * week of a year includes at least four days of that year it is week 1, + * otherwise it gets the number of the last week of the previous year. + * The variable y will be filled with the year that contains the greater + * part of the week. + */ +int +week(int nd, int *y) +{ + date dt; + int fw; /* 1st day of week 1 of previous, this and + * next year */ + gdate(nd, &dt); + for (*y = dt.y + 1; nd < (fw = firstweek(*y)); (*y)--) + ; + return ((nd - fw) / 7 + 1); +} + +/* return the first day of week 1 of year y */ +static int +firstweek(int y) +{ + date idt; + int nd, wd; + + idt.y = y - 1; /* internal representation of y-1-1 */ + idt.m = 10; + idt.d = 0; + + nd = ndaysgi(&idt); + /* + * If more than 3 days of this week are in the preceding year, the + * next week is week 1 (and the next monday is the answer), + * otherwise this week is week 1 and the last monday is the + * answer. + */ + if ((wd = weekday(nd)) > 3) + return (nd - wd + 7); + else + return (nd - wd); +} + +/* return the weekday (Mo = 0 .. Su = 6) */ +int +weekday(int nd) +{ + date dmondaygi = {1997, 8, 16}; /* Internal repr. of 1997-11-17 */ + static int nmonday; /* ... which is a monday */ + + /* Cache the daynumber of one monday */ + if (nmonday == 0) + nmonday = ndaysgi(&dmondaygi); + + /* return (nd - nmonday) modulo 7 which is the weekday */ + nd = (nd - nmonday) % 7; + if (nd < 0) + return (nd + 7); + else + return (nd); +} + +/* + * Convert a date to internal date representation: The year starts on + * March 1st, month and day numbering start at zero. E. g. March 1st of + * year zero is written as y=0, m=0, d=0. + */ +static date * +date2idt(date *idt, date *dt) +{ + + idt->d = dt->d - 1; + if (dt->m > 2) { + idt->m = dt->m - 3; + idt->y = dt->y; + } else { + idt->m = dt->m + 9; + idt->y = dt->y - 1; + } + if (idt->m < 0 || idt->m > 11 || idt->y < 0) + return (NULL); + else + return idt; +} + +/* Reverse of date2idt */ +static date * +idt2date(date *dt, date *idt) +{ + + dt->d = idt->d + 1; + if (idt->m < 10) { + dt->m = idt->m + 3; + dt->y = idt->y; + } else { + dt->m = idt->m - 9; + dt->y = idt->y + 1; + } + if (dt->m < 1) + return (NULL); + else + return (dt); +} diff --git a/misc_cmds/ncal/calendar.h b/misc_cmds/ncal/calendar.h new file mode 100644 index 0000000..2c42d6c --- /dev/null +++ b/misc_cmds/ncal/calendar.h @@ -0,0 +1,42 @@ +/*- + * Copyright (c) 1997 Wolfgang Helbig + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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$ + */ +struct date { + int y; /* year */ + int m; /* month */ + int d; /* day */ +}; + +struct date *easterg(int _year, struct date *_dt); +struct date *easterog(int _year, struct date *_dt); +struct date *easteroj(int _year, struct date *_dt); +struct date *gdate(int _nd, struct date *_dt); +struct date *jdate(int _nd, struct date *_dt); +int ndaysg(struct date *_dt); +int ndaysj(struct date *_dt); +int week(int _nd, int *_year); +int weekday(int _nd); diff --git a/misc_cmds/ncal/easter.c b/misc_cmds/ncal/easter.c new file mode 100644 index 0000000..8bb3e1c --- /dev/null +++ b/misc_cmds/ncal/easter.c @@ -0,0 +1,101 @@ +/*- + * Copyright (c) 1997 Wolfgang Helbig + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "calendar.h" + +typedef struct date date; + +static int easterodn(int y); + +/* Compute Easter Sunday in Gregorian Calendar */ +date * +easterg(int y, date *dt) +{ + int c, i, j, k, l, n; + + n = y % 19; + c = y / 100; + k = (c - 17) / 25; + i = (c - c/4 -(c-k)/3 + 19 * n + 15) % 30; + i = i -(i/28) * (1 - (i/28) * (29/(i + 1)) * ((21 - n)/11)); + j = (y + y/4 + i + 2 - c + c/4) % 7; + l = i - j; + dt->m = 3 + (l + 40) / 44; + dt->d = l + 28 - 31*(dt->m / 4); + dt->y = y; + return (dt); +} + +/* Compute the Gregorian date of Easter Sunday in Julian Calendar */ +date * +easterog(int y, date *dt) +{ + + return (gdate(easterodn(y), dt)); +} + +/* Compute the Julian date of Easter Sunday in Julian Calendar */ +date * +easteroj(int y, date * dt) +{ + + return (jdate(easterodn(y), dt)); +} + +/* Compute the day number of Easter Sunday in Julian Calendar */ +static int +easterodn(int y) +{ + /* + * Table for the easter limits in one metonic (19-year) cycle. 21 + * to 31 is in March, 1 through 18 in April. Easter is the first + * sunday after the easter limit. + */ + int mc[] = {5, 25, 13, 2, 22, 10, 30, 18, 7, 27, 15, 4, + 24, 12, 1, 21, 9, 29, 17}; + + /* Offset from a weekday to next sunday */ + int ns[] = {6, 5, 4, 3, 2, 1, 7}; + date dt; + int dn; + + /* Assign the easter limit of y to dt */ + dt.d = mc[y % 19]; + + if (dt.d < 21) + dt.m = 4; + else + dt.m = 3; + + dt.y = y; + + /* Return the next sunday after the easter limit */ + dn = ndaysj(&dt); + return (dn + ns[weekday(dn)]); +} diff --git a/misc_cmds/ncal/ncal.1 b/misc_cmds/ncal/ncal.1 new file mode 100644 index 0000000..329db6d --- /dev/null +++ b/misc_cmds/ncal/ncal.1 @@ -0,0 +1,198 @@ +.\" Copyright (c) 1997 Wolfgang Helbig +.\" 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. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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$ +.\" +.Dd March 14, 2009 +.Dt CAL 1 +.Os +.Sh NAME +.Nm cal , +.Nm ncal +.Nd displays a calendar and the date of Easter +.Sh SYNOPSIS +.Nm +.Op Fl 3hjy +.Op Fl A Ar number +.Op Fl B Ar number +.Oo +.Op Ar month +.Ar year +.Oc +.Nm +.Op Fl 3hj +.Op Fl A Ar number +.Op Fl B Ar number +.Fl m Ar month +.Op Ar year +.Nm ncal +.Op Fl 3hjJpwy +.Op Fl A Ar number +.Op Fl B Ar number +.Op Fl s Ar country_code +.Oo +.Op Ar month +.Ar year +.Oc +.Nm ncal +.Op Fl 3hJeo +.Op Fl A Ar number +.Op Fl B Ar number +.Op Ar year +.Nm ncal +.Op Fl CN +.Op Fl H Ar yyyy-mm-dd +.Op Fl d Ar yyyy-mm +.Sh DESCRIPTION +The +.Nm +utility displays a simple calendar in traditional format and +.Nm ncal +offers an alternative layout, more options and the date of Easter. +The new format is a little cramped but it makes a year fit +on a 25x80 terminal. +If arguments are not specified, +the current month is displayed. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl h +Turns off highlighting of today. +.It Fl J +Display Julian Calendar, if combined with the +.Fl e +option, display date of Easter according to the Julian Calendar. +.It Fl e +Display date of Easter (for western churches). +.It Fl j +Display Julian days (days one-based, numbered from January 1). +.It Fl m Ar month +Display the specified +.Ar month . +If +.Ar month +is specified as a decimal number, it may be followed by the letter +.Ql f +or +.Ql p +to indicate the following or preceding month of that number, +respectively. +.It Fl o +Display date of Orthodox Easter (Greek and Russian +Orthodox Churches). +.It Fl p +Print the country codes and switching days from Julian to Gregorian +Calendar as they are assumed by +.Nm ncal . +The country code as determined from the local environment is marked +with an asterisk. +.It Fl s Ar country_code +Assume the switch from Julian to Gregorian Calendar at the date +associated with the +.Ar country_code . +If not specified, +.Nm ncal +tries to guess the switch date from the local environment or +falls back to September 2, 1752. +This was when Great +Britain and her colonies switched to the Gregorian Calendar. +.It Fl w +Print the number of the week below each week column. +.It Fl y +Display a calendar for the specified year. +.It Fl 3 +Display the previous, current and next month surrounding today. +.It Fl A Ar number +Display the +.Ar number +of months after the current month. +.It Fl B Ar number +Display the +.Ar number +of months before the current month. +.It Fl C +Switch to +.Nm cal +mode. +.It Fl N +Switch to +.Nm ncal +mode. +.It Fl d Ar yyyy-mm +Use +.Ar yyyy-mm +as the current date (for debugging of date selection). +.It Fl H Ar yyyy-mm-dd +Use +.Ar yyyy-mm-dd +as the current date (for debugging of highlighting). +.El +.Pp +A single parameter specifies the year (1\(en9999) to be displayed; +note the year must be fully specified: +.Dq Li cal 89 +will +.Em not +display a calendar for 1989. Two parameters denote the month and +year; the month is either a number between 1 and 12, or a full or +abbreviated name as specified by the current locale. Month and +year default to those of the current system clock and time zone (so +.Dq Li cal -m 8 +will display a calendar for the month of August in the current +year). +.Pp +Not all options can be used together. For example +.Dq Li -3 -A 2 -B 3 -y -m 7 +would mean: +show me the three months around the seventh month, three before +that, two after that and the whole year. +.Nm ncal +will warn about these combinations. +.Pp +A year starts on January 1. +.Pp +Highlighting of dates is disabled if stdout is not a tty. +.Sh SEE ALSO +.Xr calendar 3 , +.Xr strftime 3 +.Sh HISTORY +A +.Nm +command appeared in +.At v5 . +The +.Nm ncal +command appeared in +.Fx 2.2.6 . +.Sh AUTHORS +The +.Nm ncal +command and manual were written by +.An Wolfgang Helbig Aq Mt helbig@FreeBSD.org . +.Sh BUGS +The assignment of Julian\(enGregorian switching dates to country +codes is historically naive for many countries. +.Pp +Not all options are compatible and using them in different orders +will give varying results. diff --git a/misc_cmds/ncal/ncal.c b/misc_cmds/ncal/ncal.c new file mode 100644 index 0000000..5a5cbc3 --- /dev/null +++ b/misc_cmds/ncal/ncal.c @@ -0,0 +1,1177 @@ +/*- + * Copyright (c) 1997 Wolfgang Helbig + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#undef lines /* term.h defines this */ + +/* Width of one month with backward compatibility and in regular mode*/ +#define MONTH_WIDTH_B_J 27 +#define MONTH_WIDTH_B 20 + +#define MONTH_WIDTH_R_J 24 +#define MONTH_WIDTH_R 18 + +#define MAX_WIDTH 64 + +typedef struct date date; + +struct monthlines { + wchar_t name[MAX_WIDTH + 1]; + char lines[7][MAX_WIDTH + 1]; + char weeks[MAX_WIDTH + 1]; + unsigned int extralen[7]; +}; + +struct weekdays { + wchar_t names[7][4]; +}; + +/* The switches from Julian to Gregorian in some countries */ +static struct djswitch { + const char *cc; /* Country code according to ISO 3166 */ + const char *nm; /* Name of country */ + date dt; /* Last day of Julian calendar */ +} switches[] = { + {"AL", "Albania", {1912, 11, 30}}, + {"AT", "Austria", {1583, 10, 5}}, + {"AU", "Australia", {1752, 9, 2}}, + {"BE", "Belgium", {1582, 12, 14}}, + {"BG", "Bulgaria", {1916, 3, 18}}, + {"CA", "Canada", {1752, 9, 2}}, + {"CH", "Switzerland", {1655, 2, 28}}, + {"CN", "China", {1911, 12, 18}}, + {"CZ", "Czech Republic",{1584, 1, 6}}, + {"DE", "Germany", {1700, 2, 18}}, + {"DK", "Denmark", {1700, 2, 18}}, + {"ES", "Spain", {1582, 10, 4}}, + {"FI", "Finland", {1753, 2, 17}}, + {"FR", "France", {1582, 12, 9}}, + {"GB", "United Kingdom",{1752, 9, 2}}, + {"GR", "Greece", {1924, 3, 9}}, + {"HU", "Hungary", {1587, 10, 21}}, + {"IS", "Iceland", {1700, 11, 16}}, + {"IT", "Italy", {1582, 10, 4}}, + {"JP", "Japan", {1918, 12, 18}}, + {"LI", "Lithuania", {1918, 2, 1}}, + {"LN", "Latin", {9999, 05, 31}}, + {"LU", "Luxembourg", {1582, 12, 14}}, + {"LV", "Latvia", {1918, 2, 1}}, + {"NL", "Netherlands", {1582, 12, 14}}, + {"NO", "Norway", {1700, 2, 18}}, + {"PL", "Poland", {1582, 10, 4}}, + {"PT", "Portugal", {1582, 10, 4}}, + {"RO", "Romania", {1919, 3, 31}}, + {"RU", "Russia", {1918, 1, 31}}, + {"SI", "Slovenia", {1919, 3, 4}}, + {"SE", "Sweden", {1753, 2, 17}}, + {"TR", "Turkey", {1926, 12, 18}}, + {"US", "United States", {1752, 9, 2}}, + {"YU", "Yugoslavia", {1919, 3, 4}} +}; + +static struct djswitch *dftswitch = + switches + sizeof(switches) / sizeof(struct djswitch) - 2; + /* default switch (should be "US") */ + +/* Table used to print day of month and week numbers */ +static char daystr[] = " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15" + " 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31" + " 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47" + " 48 49 50 51 52 53"; + +/* Table used to print day of year and week numbers */ +static char jdaystr[] = " 1 2 3 4 5 6 7 8 9" + " 10 11 12 13 14 15 16 17 18 19" + " 20 21 22 23 24 25 26 27 28 29" + " 30 31 32 33 34 35 36 37 38 39" + " 40 41 42 43 44 45 46 47 48 49" + " 50 51 52 53 54 55 56 57 58 59" + " 60 61 62 63 64 65 66 67 68 69" + " 70 71 72 73 74 75 76 77 78 79" + " 80 81 82 83 84 85 86 87 88 89" + " 90 91 92 93 94 95 96 97 98 99" + " 100 101 102 103 104 105 106 107 108 109" + " 110 111 112 113 114 115 116 117 118 119" + " 120 121 122 123 124 125 126 127 128 129" + " 130 131 132 133 134 135 136 137 138 139" + " 140 141 142 143 144 145 146 147 148 149" + " 150 151 152 153 154 155 156 157 158 159" + " 160 161 162 163 164 165 166 167 168 169" + " 170 171 172 173 174 175 176 177 178 179" + " 180 181 182 183 184 185 186 187 188 189" + " 190 191 192 193 194 195 196 197 198 199" + " 200 201 202 203 204 205 206 207 208 209" + " 210 211 212 213 214 215 216 217 218 219" + " 220 221 222 223 224 225 226 227 228 229" + " 230 231 232 233 234 235 236 237 238 239" + " 240 241 242 243 244 245 246 247 248 249" + " 250 251 252 253 254 255 256 257 258 259" + " 260 261 262 263 264 265 266 267 268 269" + " 270 271 272 273 274 275 276 277 278 279" + " 280 281 282 283 284 285 286 287 288 289" + " 290 291 292 293 294 295 296 297 298 299" + " 300 301 302 303 304 305 306 307 308 309" + " 310 311 312 313 314 315 316 317 318 319" + " 320 321 322 323 324 325 326 327 328 329" + " 330 331 332 333 334 335 336 337 338 339" + " 340 341 342 343 344 345 346 347 348 349" + " 350 351 352 353 354 355 356 357 358 359" + " 360 361 362 363 364 365 366"; + +static int flag_nohighlight; /* user doesn't want a highlighted today */ +static int flag_weeks; /* user wants number of week */ +static int nswitch; /* user defined switch date */ +static int nswitchb; /* switch date for backward compatibility */ +static int highlightdate; + +static char *center(char *s, char *t, int w); +static wchar_t *wcenter(wchar_t *s, wchar_t *t, int w); +static int firstday(int y, int m); +static void highlight(char *dst, char *src, int len, int *extraletters); +static void mkmonthr(int year, int month, int jd_flag, + struct monthlines * monthl); +static void mkmonthb(int year, int month, int jd_flag, + struct monthlines * monthl); +static void mkweekdays(struct weekdays * wds); +static void monthranger(int year, int m, int jd_flag, + int before, int after); +static void monthrangeb(int year, int m, int jd_flag, + int before, int after); +static int parsemonth(const char *s, int *m, int *y); +static void printcc(void); +static void printeaster(int year, int julian, int orthodox); +static date *sdater(int ndays, struct date * d); +static date *sdateb(int ndays, struct date * d); +static int sndaysr(struct date * d); +static int sndaysb(struct date * d); +static void usage(void); + +int +main(int argc, char *argv[]) +{ + struct djswitch *p, *q; /* to search user defined switch date */ + date never = {10000, 1, 1}; /* outside valid range of dates */ + date ukswitch = {1752, 9, 2};/* switch date for Great Britain */ + date dt; + int ch; /* holds the option character */ + int m = 0; /* month */ + int y = 0; /* year */ + int flag_backward = 0; /* user called cal--backward compat. */ + int flag_wholeyear = 0; /* user wants the whole year */ + int flag_julian_cal = 0; /* user wants Julian Calendar */ + int flag_julian_day = 0; /* user wants the Julian day numbers */ + int flag_orthodox = 0; /* user wants Orthodox easter */ + int flag_easter = 0; /* user wants easter date */ + int flag_3months = 0; /* user wants 3 month display (-3) */ + int flag_after = 0; /* user wants to see months after */ + int flag_before = 0; /* user wants to see months before */ + int flag_specifiedmonth = 0;/* user wants to see this month (-m) */ + int flag_givenmonth = 0; /* user has specified month [n] */ + int flag_givenyear = 0; /* user has specified year [n] */ + char *cp; /* character pointer */ + char *flag_today = NULL; /* debug: use date as being today */ + char *flag_month = NULL; /* requested month as string */ + char *flag_highlightdate = NULL; /* debug: date to highlight */ + int before, after; + const char *locale; /* locale to get country code */ + + flag_nohighlight = 0; + flag_weeks = 0; + + /* + * Use locale to determine the country code, + * and use the country code to determine the default + * switchdate and date format from the switches table. + */ + if (setlocale(LC_ALL, "") == NULL) + warn("setlocale"); + locale = setlocale(LC_TIME, NULL); + if (locale == NULL || + strcmp(locale, "C") == 0 || + strcmp(locale, "POSIX") == 0 || + strcmp(locale, "ASCII") == 0 || + strcmp(locale, "US-ASCII") == 0) + locale = "_US"; + q = switches + sizeof(switches) / sizeof(struct djswitch); + for (p = switches; p != q; p++) + if ((cp = strstr(locale, p->cc)) != NULL && *(cp - 1) == '_') + break; + if (p == q) { + nswitch = ndaysj(&dftswitch->dt); + } else { + nswitch = ndaysj(&p->dt); + dftswitch = p; + } + + + /* + * Get the filename portion of argv[0] and set flag_backward if + * this program is called "cal". + */ + if (strncmp(basename(argv[0]), "cal", strlen("cal")) == 0) + flag_backward = 1; + + /* Set the switch date to United Kingdom if backwards compatible */ + if (flag_backward) + nswitchb = ndaysj(&ukswitch); + + before = after = -1; + + while ((ch = getopt(argc, argv, "3A:B:Cd:eH:hjJm:Nops:wy")) != -1) + switch (ch) { + case '3': + flag_3months = 1; + break; + case 'A': + if (flag_after > 0) + errx(EX_USAGE, "Double -A specified"); + flag_after = strtol(optarg, NULL, 10); + if (flag_after <= 0) + errx(EX_USAGE, + "Argument to -A must be positive"); + break; + case 'B': + if (flag_before > 0) + errx(EX_USAGE, "Double -A specified"); + flag_before = strtol(optarg, NULL, 10); + if (flag_before <= 0) + errx(EX_USAGE, + "Argument to -B must be positive"); + break; + case 'J': + if (flag_backward) + usage(); + nswitch = ndaysj(&never); + flag_julian_cal = 1; + break; + case 'C': + flag_backward = 1; + break; + case 'N': + flag_backward = 0; + break; + case 'd': + flag_today = optarg; + break; + case 'H': + flag_highlightdate = optarg; + break; + case 'h': + flag_nohighlight = 1; + break; + case 'e': + if (flag_backward) + usage(); + flag_easter = 1; + break; + case 'j': + flag_julian_day = 1; + break; + case 'm': + if (flag_specifiedmonth) + errx(EX_USAGE, "Double -m specified"); + flag_month = optarg; + flag_specifiedmonth = 1; + break; + case 'o': + if (flag_backward) + usage(); + flag_orthodox = 1; + flag_easter = 1; + break; + case 'p': + if (flag_backward) + usage(); + printcc(); + return (0); + break; + case 's': + if (flag_backward) + usage(); + q = switches + + sizeof(switches) / sizeof(struct djswitch); + for (p = switches; + p != q && strcmp(p->cc, optarg) != 0; p++) + ; + if (p == q) + errx(EX_USAGE, + "%s: invalid country code", optarg); + nswitch = ndaysj(&(p->dt)); + break; + case 'w': + if (flag_backward) + usage(); + flag_weeks = 1; + break; + case 'y': + flag_wholeyear = 1; + break; + default: + usage(); + } + + argc -= optind; + argv += optind; + + switch (argc) { + case 2: + if (flag_easter) + usage(); + flag_month = *argv++; + flag_givenmonth = 1; + m = strtol(flag_month, NULL, 10); + /* FALLTHROUGH */ + case 1: + y = atoi(*argv); + if (y < 1 || y > 9999) + errx(EX_USAGE, "year `%s' not in range 1..9999", *argv); + argv++; + flag_givenyear = 1; + break; + case 0: + if (flag_today != NULL) { + y = strtol(flag_today, NULL, 10); + m = strtol(flag_today + 5, NULL, 10); + } else { + time_t t; + struct tm *tm; + + t = time(NULL); + tm = localtime(&t); + y = tm->tm_year + 1900; + m = tm->tm_mon + 1; + } + break; + default: + usage(); + } + + if (flag_month != NULL) { + if (parsemonth(flag_month, &m, &y)) { + errx(EX_USAGE, + "%s is neither a month number (1..12) nor a name", + flag_month); + } + } + + /* + * What is not supported: + * -3 with -A or -B + * -3 displays 3 months, -A and -B change that behaviour. + * -3 with -y + * -3 displays 3 months, -y says display a whole year. + * -3 with a given year but no given month or without -m + * -3 displays 3 months, no month specified doesn't make clear + * which three months. + * -m with a given month + * conflicting arguments, both specify the same field. + * -y with -m + * -y displays the whole year, -m displays a single month. + * -y with a given month + * -y displays the whole year, the given month displays a single + * month. + * -y with -A or -B + * -y displays the whole year, -A and -B display extra months. + */ + + /* -3 together with -A or -B. */ + if (flag_3months && (flag_after || flag_before)) + errx(EX_USAGE, "-3 together with -A and -B is not supported."); + /* -3 together with -y. */ + if (flag_3months && flag_wholeyear) + errx(EX_USAGE, "-3 together with -y is not supported."); + /* -3 together with givenyear but no givenmonth. */ + if (flag_3months && flag_givenyear && + !(flag_givenmonth || flag_specifiedmonth)) + errx(EX_USAGE, + "-3 together with a given year but no given month is " + "not supported."); + /* -m together with xx xxxx. */ + if (flag_specifiedmonth && flag_givenmonth) + errx(EX_USAGE, + "-m together with a given month is not supported."); + /* -y together with -m. */ + if (flag_wholeyear && flag_specifiedmonth) + errx(EX_USAGE, "-y together with -m is not supported."); + /* -y together with xx xxxx. */ + if (flag_wholeyear && flag_givenmonth) + errx(EX_USAGE, "-y together a given month is not supported."); + /* -y together with -A or -B. */ + if (flag_wholeyear && (flag_before > 0 || flag_after > 0)) + errx(EX_USAGE, "-y together a -A or -B is not supported."); + /* The rest should be fine. */ + + /* Select the period to display, in order of increasing priority .*/ + if (flag_wholeyear || + (flag_givenyear && !(flag_givenmonth || flag_specifiedmonth))) { + m = 1; + before = 0; + after = 11; + } + if (flag_givenyear && flag_givenmonth) { + before = 0; + after = 0; + } + if (flag_specifiedmonth) { + before = 0; + after = 0; + } + if (flag_before) { + before = flag_before; + } + if (flag_after) { + after = flag_after; + } + if (flag_3months) { + before = 1; + after = 1; + } + if (after == -1) + after = 0; + if (before == -1) + before = 0; + + /* Highlight a specified day or today .*/ + if (flag_highlightdate != NULL) { + dt.y = strtol(flag_highlightdate, NULL, 10); + dt.m = strtol(flag_highlightdate + 5, NULL, 10); + dt.d = strtol(flag_highlightdate + 8, NULL, 10); + } else { + time_t t; + struct tm *tm1; + + t = time(NULL); + tm1 = localtime(&t); + dt.y = tm1->tm_year + 1900; + dt.m = tm1->tm_mon + 1; + dt.d = tm1->tm_mday; + } + highlightdate = sndaysb(&dt); + + /* And now we finally start to calculate and output calendars. */ + if (flag_easter) + printeaster(y, flag_julian_cal, flag_orthodox); + else + if (flag_backward) + monthrangeb(y, m, flag_julian_day, before, after); + else + monthranger(y, m, flag_julian_day, before, after); + return (0); +} + +static void +usage(void) +{ + + fputs( +"Usage: cal [general options] [-hjy] [[month] year]\n" +" cal [general options] [-hj] [-m month] [year]\n" +" ncal [general options] [-hJjpwy] [-s country_code] [[month] year]\n" +" ncal [general options] [-hJeo] [year]\n" +"General options: [-NC3] [-A months] [-B months]\n" +"For debug the highlighting: [-H yyyy-mm-dd] [-d yyyy-mm]\n", + stderr); + exit(EX_USAGE); +} + +/* Print the assumed switches for all countries. */ +static void +printcc(void) +{ + struct djswitch *p; + int n; /* number of lines to print */ + int m; /* offset from left to right table entry on the same line */ + +#define FSTR "%c%s %-15s%4d-%02d-%02d" +#define DFLT(p) ((p) == dftswitch ? '*' : ' ') +#define FSTRARG(p) DFLT(p), (p)->cc, (p)->nm, (p)->dt.y, (p)->dt.m, (p)->dt.d + + n = sizeof(switches) / sizeof(struct djswitch); + m = (n + 1) / 2; + n /= 2; + for (p = switches; p != switches + n; p++) + printf(FSTR" "FSTR"\n", FSTRARG(p), FSTRARG(p+m)); + if (m != n) + printf(FSTR"\n", FSTRARG(p)); +} + +/* Print the date of easter sunday. */ +static void +printeaster(int y, int julian, int orthodox) +{ + date dt; + struct tm tm; + char buf[MAX_WIDTH]; + static int d_first = -1; + + if (d_first < 0) + d_first = (*nl_langinfo(D_MD_ORDER) == 'd'); + /* force orthodox easter for years before 1583 */ + if (y < 1583) + orthodox = 1; + + if (orthodox) + if (julian) + easteroj(y, &dt); + else + easterog(y, &dt); + else + easterg(y, &dt); + + memset(&tm, 0, sizeof(tm)); + tm.tm_year = dt.y - 1900; + tm.tm_mon = dt.m - 1; + tm.tm_mday = dt.d; + strftime(buf, sizeof(buf), d_first ? "%e %B %Y" : "%B %e %Y", &tm); + printf("%s\n", buf); +} + +#define MW(mw, me) ((mw) + me) +#define DECREASEMONTH(m, y) \ + if (--m == 0) { \ + m = 12; \ + y--; \ + } +#define INCREASEMONTH(m, y) \ + if (++(m) == 13) { \ + (m) = 1; \ + (y)++; \ + } +#define M2Y(m) ((m) / 12) +#define M2M(m) (1 + (m) % 12) + +/* Print all months for the period in the range [ before .. y-m .. after ]. */ +static void +monthrangeb(int y, int m, int jd_flag, int before, int after) +{ + struct monthlines year[12]; + struct weekdays wds; + char s[MAX_WIDTH], t[MAX_WIDTH]; + wchar_t ws[MAX_WIDTH], ws1[MAX_WIDTH]; + const char *wdss; + int i, j; + int mpl; + int mw; + int m1, m2; + int printyearheader; + int prevyear = -1; + + mpl = jd_flag ? 2 : 3; + mw = jd_flag ? MONTH_WIDTH_B_J : MONTH_WIDTH_B; + wdss = (mpl == 2) ? " " : ""; + + while (before != 0) { + DECREASEMONTH(m, y); + before--; + after++; + } + m1 = y * 12 + m - 1; + m2 = m1 + after; + + mkweekdays(&wds); + + /* + * The year header is printed when there are more than 'mpl' months + * and if the first month is a multitude of 'mpl'. + * If not, it will print the year behind every month. + */ + printyearheader = (after >= mpl - 1) && (M2M(m1) - 1) % mpl == 0; + + m = m1; + while (m <= m2) { + int count = 0; + for (i = 0; i != mpl && m + i <= m2; i++) { + mkmonthb(M2Y(m + i), M2M(m + i) - 1, jd_flag, year + i); + count++; + } + + /* Empty line between two rows of months */ + if (m != m1) + printf("\n"); + + /* Year at the top. */ + if (printyearheader && M2Y(m) != prevyear) { + sprintf(s, "%d", M2Y(m)); + printf("%s\n", center(t, s, mpl * mw)); + prevyear = M2Y(m); + } + + /* Month names. */ + for (i = 0; i < count; i++) + if (printyearheader) + wprintf(L"%-*ls ", + mw, wcenter(ws, year[i].name, mw)); + else { + swprintf(ws, sizeof(ws)/sizeof(ws[0]), + L"%-ls %d", year[i].name, M2Y(m + i)); + wprintf(L"%-*ls ", mw, wcenter(ws1, ws, mw)); + } + printf("\n"); + + /* Day of the week names. */ + for (i = 0; i < count; i++) { + wprintf(L"%s%ls%s%ls%s%ls%s%ls%s%ls%s%ls%s%ls ", + wdss, wds.names[6], wdss, wds.names[0], + wdss, wds.names[1], wdss, wds.names[2], + wdss, wds.names[3], wdss, wds.names[4], + wdss, wds.names[5]); + } + printf("\n"); + + /* And the days of the month. */ + for (i = 0; i != 6; i++) { + for (j = 0; j < count; j++) + printf("%-*s ", + MW(mw, year[j].extralen[i]), + year[j].lines[i]+1); + printf("\n"); + } + + m += mpl; + } +} + +static void +monthranger(int y, int m, int jd_flag, int before, int after) +{ + struct monthlines year[12]; + struct weekdays wds; + char s[MAX_WIDTH], t[MAX_WIDTH]; + int i, j; + int mpl; + int mw; + int m1, m2; + int prevyear = -1; + int printyearheader; + + mpl = jd_flag ? 3 : 4; + mw = jd_flag ? MONTH_WIDTH_R_J : MONTH_WIDTH_R; + + while (before != 0) { + DECREASEMONTH(m, y); + before--; + after++; + } + m1 = y * 12 + m - 1; + m2 = m1 + after; + + mkweekdays(&wds); + + /* + * The year header is printed when there are more than 'mpl' months + * and if the first month is a multitude of 'mpl'. + * If not, it will print the year behind every month. + */ + printyearheader = (after >= mpl - 1) && (M2M(m1) - 1) % mpl == 0; + + m = m1; + while (m <= m2) { + int count = 0; + for (i = 0; i != mpl && m + i <= m2; i++) { + mkmonthr(M2Y(m + i), M2M(m + i) - 1, jd_flag, year + i); + count++; + } + + /* Empty line between two rows of months. */ + if (m != m1) + printf("\n"); + + /* Year at the top. */ + if (printyearheader && M2Y(m) != prevyear) { + sprintf(s, "%d", M2Y(m)); + printf("%s\n", center(t, s, mpl * mw)); + prevyear = M2Y(m); + } + + /* Month names. */ + wprintf(L" "); + for (i = 0; i < count; i++) + if (printyearheader) + wprintf(L"%-*ls", mw, year[i].name); + else + wprintf(L"%-ls %-*d", year[i].name, + mw - wcslen(year[i].name) - 1, M2Y(m + i)); + printf("\n"); + + /* And the days of the month. */ + for (i = 0; i != 7; i++) { + /* Week day */ + wprintf(L"%.2ls", wds.names[i]); + + /* Full months */ + for (j = 0; j < count; j++) + printf("%-*s", + MW(mw, year[j].extralen[i]), + year[j].lines[i]); + printf("\n"); + } + + /* Week numbers. */ + if (flag_weeks) { + printf(" "); + for (i = 0; i < count; i++) + printf("%-*s", mw, year[i].weeks); + printf("\n"); + } + + m += mpl; + } + return; +} + +static void +mkmonthr(int y, int m, int jd_flag, struct monthlines *mlines) +{ + + struct tm tm; /* for strftime printing local names of + * months */ + date dt; /* handy date */ + int dw; /* width of numbers */ + int first; /* first day of month */ + int firstm; /* first day of first week of month */ + int i, j, k, l; /* just indices */ + int last; /* the first day of next month */ + int jan1 = 0; /* the first day of this year */ + char *ds; /* pointer to day strings (daystr or + * jdaystr) */ + + /* Set name of month. */ + memset(&tm, 0, sizeof(tm)); + tm.tm_mon = m; + wcsftime(mlines->name, sizeof(mlines->name) / sizeof(mlines->name[0]), + L"%OB", &tm); + mlines->name[0] = towupper(mlines->name[0]); + + /* + * Set first and last to the day number of the first day of this + * month and the first day of next month respectively. Set jan1 to + * the day number of the first day of this year. + */ + first = firstday(y, m + 1); + if (m == 11) + last = firstday(y + 1, 1); + else + last = firstday(y, m + 2); + + if (jd_flag) + jan1 = firstday(y, 1); + + /* + * Set firstm to the day number of monday of the first week of + * this month. (This might be in the last month) + */ + firstm = first - weekday(first); + + /* Set ds (daystring) and dw (daywidth) according to the jd_flag. */ + if (jd_flag) { + ds = jdaystr; + dw = 4; + } else { + ds = daystr; + dw = 3; + } + + /* + * Fill the lines with day of month or day of year (julian day) + * line index: i, each line is one weekday. column index: j, each + * column is one day number. print column index: k. + */ + for (i = 0; i != 7; i++) { + l = 0; + for (j = firstm + i, k = 0; j < last; j += 7, k += dw) { + if (j >= first) { + if (jd_flag) + dt.d = j - jan1 + 1; + else + sdater(j, &dt); + if (j == highlightdate && !flag_nohighlight + && isatty(STDOUT_FILENO)) + highlight(mlines->lines[i] + k, + ds + dt.d * dw, dw, &l); + else + memcpy(mlines->lines[i] + k + l, + ds + dt.d * dw, dw); + } else + memcpy(mlines->lines[i] + k + l, " ", dw); + } + mlines->lines[i][k + l] = '\0'; + mlines->extralen[i] = l; + } + + /* fill the weeknumbers. */ + if (flag_weeks) { + for (j = firstm, k = 0; j < last; k += dw, j += 7) + if (j <= nswitch) + memset(mlines->weeks + k, ' ', dw); + else + memcpy(mlines->weeks + k, + ds + week(j, &i)*dw, dw); + mlines->weeks[k] = '\0'; + } +} + +static void +mkmonthb(int y, int m, int jd_flag, struct monthlines *mlines) +{ + + struct tm tm; /* for strftime printing local names of + * months */ + date dt; /* handy date */ + int dw; /* width of numbers */ + int first; /* first day of month */ + int firsts; /* sunday of first week of month */ + int i, j, k, l; /* just indices */ + int jan1 = 0; /* the first day of this year */ + int last; /* the first day of next month */ + char *ds; /* pointer to day strings (daystr or + * jdaystr) */ + + /* Set ds (daystring) and dw (daywidth) according to the jd_flag */ + if (jd_flag) { + ds = jdaystr; + dw = 4; + } else { + ds = daystr; + dw = 3; + } + + /* Set name of month centered. */ + memset(&tm, 0, sizeof(tm)); + tm.tm_mon = m; + wcsftime(mlines->name, sizeof(mlines->name) / sizeof(mlines->name[0]), + L"%OB", &tm); + mlines->name[0] = towupper(mlines->name[0]); + + /* + * Set first and last to the day number of the first day of this + * month and the first day of next month respectively. Set jan1 to + * the day number of Jan 1st of this year. + */ + dt.y = y; + dt.m = m + 1; + dt.d = 1; + first = sndaysb(&dt); + if (m == 11) { + dt.y = y + 1; + dt.m = 1; + dt.d = 1; + } else { + dt.y = y; + dt.m = m + 2; + dt.d = 1; + } + last = sndaysb(&dt); + + if (jd_flag) { + dt.y = y; + dt.m = 1; + dt.d = 1; + jan1 = sndaysb(&dt); + } + + /* + * Set firsts to the day number of sunday of the first week of + * this month. (This might be in the last month) + */ + firsts = first - (weekday(first)+1) % 7; + + /* + * Fill the lines with day of month or day of year (Julian day) + * line index: i, each line is one week. column index: j, each + * column is one day number. print column index: k. + */ + for (i = 0; i != 6; i++) { + l = 0; + for (j = firsts + 7 * i, k = 0; j < last && k != dw * 7; + j++, k += dw) { + if (j >= first) { + if (jd_flag) + dt.d = j - jan1 + 1; + else + sdateb(j, &dt); + if (j == highlightdate && !flag_nohighlight) + highlight(mlines->lines[i] + k, + ds + dt.d * dw, dw, &l); + else + memcpy(mlines->lines[i] + k + l, + ds + dt.d * dw, dw); + } else + memcpy(mlines->lines[i] + k + l, " ", dw); + } + if (k == 0) + mlines->lines[i][1] = '\0'; + else + mlines->lines[i][k + l] = '\0'; + mlines->extralen[i] = l; + } +} + +/* Put the local names of weekdays into the wds. */ +static void +mkweekdays(struct weekdays *wds) +{ + int i, len, width = 0; + struct tm tm; + wchar_t buf[20]; + + memset(&tm, 0, sizeof(tm)); + + for (i = 0; i != 7; i++) { + tm.tm_wday = (i+1) % 7; + wcsftime(buf, sizeof(buf)/sizeof(buf[0]), L"%a", &tm); + for (len = 2; len > 0; --len) { + if ((width = wcswidth(buf, len)) <= 2) + break; + } + wmemset(wds->names[i], L'\0', 4); + if (width == 1) + wds->names[i][0] = L' '; + wcsncat(wds->names[i], buf, len); + wcsncat(wds->names[i], L" ", 1); + } +} + +/* + * Compute the day number of the first existing date after the first day in + * month. (the first day in month and even the month might not exist!) + */ +static int +firstday(int y, int m) +{ + date dt; + int nd; + + dt.y = y; + dt.m = m; + dt.d = 1; + nd = sndaysr(&dt); + for (;;) { + sdater(nd, &dt); + if ((dt.m >= m && dt.y == y) || dt.y > y) + return (nd); + else + nd++; + } + /* NEVER REACHED */ +} + +/* + * Compute the number of days from date, obey the local switch from + * Julian to Gregorian if specified by the user. + */ +static int +sndaysr(struct date *d) +{ + + if (nswitch != 0) + if (nswitch < ndaysj(d)) + return (ndaysg(d)); + else + return (ndaysj(d)); + else + return ndaysg(d); +} + +/* + * Compute the number of days from date, obey the switch from + * Julian to Gregorian as used by UK and her colonies. + */ +static int +sndaysb(struct date *d) +{ + + if (nswitchb < ndaysj(d)) + return (ndaysg(d)); + else + return (ndaysj(d)); +} + +/* Inverse of sndays. */ +static struct date * +sdater(int nd, struct date *d) +{ + + if (nswitch < nd) + return (gdate(nd, d)); + else + return (jdate(nd, d)); +} + +/* Inverse of sndaysb. */ +static struct date * +sdateb(int nd, struct date *d) +{ + + if (nswitchb < nd) + return (gdate(nd, d)); + else + return (jdate(nd, d)); +} + +/* Center string t in string s of length w by putting enough leading blanks. */ +static char * +center(char *s, char *t, int w) +{ + char blanks[MAX_WIDTH]; + + memset(blanks, ' ', sizeof(blanks)); + sprintf(s, "%.*s%s", (int)(w - strlen(t)) / 2, blanks, t); + return (s); +} + +/* Center string t in string s of length w by putting enough leading blanks. */ +static wchar_t * +wcenter(wchar_t *s, wchar_t *t, int w) +{ + char blanks[MAX_WIDTH]; + + memset(blanks, ' ', sizeof(blanks)); + swprintf(s, MAX_WIDTH, L"%.*s%ls", (int)(w - wcslen(t)) / 2, blanks, t); + return (s); +} + +static int +parsemonth(const char *s, int *m, int *y) +{ + int nm, ny; + char *cp; + struct tm tm; + + nm = (int)strtol(s, &cp, 10); + if (cp != s) { + ny = *y; + if (*cp == '\0') { + ; /* no special action */ + } else if (*cp == 'f' || *cp == 'F') { + if (nm <= *m) + ny++; + } else if (*cp == 'p' || *cp == 'P') { + if (nm >= *m) + ny--; + } else + return (1); + if (nm < 1 || nm > 12) + return 1; + *m = nm; + *y = ny; + return (0); + } + if (strptime(s, "%B", &tm) != NULL || strptime(s, "%b", &tm) != NULL) { + *m = tm.tm_mon + 1; + return (0); + } + return (1); +} + +static void +highlight(char *dst, char *src, int len, int *extralen) +{ + static int first = 1; + static const char *term_so, *term_se; + + if (first) { + char tbuf[1024], cbuf[512], *b; + + term_se = term_so = NULL; + + /* On how to highlight on this type of terminal (if any). */ + if (isatty(STDOUT_FILENO) && tgetent(tbuf, NULL) == 1) { + b = cbuf; + term_so = tgetstr("so", &b); + term_se = tgetstr("se", &b); + } + + first = 0; + } + + /* + * This check is not necessary, should have been handled before calling + * this function. + */ + if (flag_nohighlight) { + memcpy(dst, src, len); + return; + } + + /* + * If it is a real terminal, use the data from the termcap database. + */ + if (term_so != NULL && term_se != NULL) { + /* separator. */ + dst[0] = ' '; + dst++; + /* highlight on. */ + memcpy(dst, term_so, strlen(term_so)); + dst += strlen(term_so); + /* the actual text. (minus leading space) */ + len--; + src++; + memcpy(dst, src, len); + dst += len; + /* highlight off. */ + memcpy(dst, term_se, strlen(term_se)); + *extralen = strlen(term_so) + strlen(term_se); + return; + } + + /* + * Otherwise, print a _, backspace and the letter. + */ + *extralen = 0; + /* skip leading space. */ + src++; + len--; + /* separator. */ + dst[0] = ' '; + dst++; + while (len > 0) { + /* _ and backspace. */ + memcpy(dst, "_\010", 2); + dst += 2; + *extralen += 2; + /* the character. */ + *dst++ = *src++; + len--; + } + return; +} diff --git a/misc_cmds/tsort/tsort.1 b/misc_cmds/tsort/tsort.1 new file mode 100644 index 0000000..a95793d --- /dev/null +++ b/misc_cmds/tsort/tsort.1 @@ -0,0 +1,90 @@ +.\" $NetBSD: tsort.1,v 1.7 1997/10/20 01:09:53 lukem Exp $ +.\" +.\" Copyright (c) 1990, 1993, 1994 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This manual is derived from one contributed to Berkeley by +.\" Michael Rendell of Memorial University of Newfoundland. +.\" +.\" 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. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. 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. +.\" +.\" @(#)tsort.1 8.3 (Berkeley) 4/1/94 +.\" +.Dd April 1, 1994 +.Dt TSORT 1 +.Os +.Sh NAME +.Nm tsort +.Nd topological sort of a directed graph +.Sh SYNOPSIS +.Nm +.Op Fl l +.Op Fl q +.Op Ar file +.Sh DESCRIPTION +.Nm +takes a list of pairs of node names representing directed arcs in +a graph and prints the nodes in topological order on standard output. +Input is taken from the named +.Ar file , +or from standard input if no file +is given. +.Pp +Node names in the input are separated by white space and there must +be an even number of node pairs. +.Pp +Presence of a node in a graph can be represented by an arc from the node +to itself. +This is useful when a node is not connected to any other nodes. +.Pp +If the graph contains a cycle (and therefore cannot be properly sorted), +one of the arcs in the cycle is ignored and the sort continues. +Cycles are reported on standard error. +.Pp +The options are as follows: +.Bl -tag -width Ds +.It Fl l +Search for and display the longest cycle. +Can take a very long time. +.It Fl q +Do not display informational messages about cycles. This is primarily +intended for building libraries, where optimal ordering is not critical, +and cycles occur often. +.El +.Sh SEE ALSO +.Xr ar 1 +.Sh HISTORY +A +.Nm +command appeared in +.At v7 . +This +.Nm +command and manual page are derived from sources contributed to Berkeley by +Michael Rendell of Memorial University of Newfoundland. diff --git a/misc_cmds/tsort/tsort.c b/misc_cmds/tsort/tsort.c new file mode 100644 index 0000000..819f086 --- /dev/null +++ b/misc_cmds/tsort/tsort.c @@ -0,0 +1,443 @@ +/* $NetBSD: tsort.c,v 1.13 1998/08/25 20:59:42 ross Exp $ */ + +/* + * Copyright (c) 1989, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Michael Rendell of Memorial University of Newfoundland. + * + * 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. 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. + */ + +#include +#ifndef lint +__COPYRIGHT("@(#) Copyright (c) 1989, 1993, 1994\n\ + The Regents of the University of California. All rights reserved.\n"); +#endif /* not lint */ + +#ifndef lint +#if 0 +static char sccsid[] = "@(#)tsort.c 8.3 (Berkeley) 5/4/95"; +#endif +__RCSID("$NetBSD: tsort.c,v 1.13 1998/08/25 20:59:42 ross Exp $"); +#endif /* not lint */ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Topological sort. Input is a list of pairs of strings separated by + * white space (spaces, tabs, and/or newlines); strings are written to + * standard output in sorted order, one per line. + * + * usage: + * tsort [-l] [inputfile] + * If no input file is specified, standard input is read. + * + * Should be compatable with AT&T tsort HOWEVER the output is not identical + * (i.e. for most graphs there is more than one sorted order, and this tsort + * usually generates a different one then the AT&T tsort). Also, cycle + * reporting seems to be more accurate in this version (the AT&T tsort + * sometimes says a node is in a cycle when it isn't). + * + * Michael Rendell, michael@stretch.cs.mun.ca - Feb 26, '90 + */ +#define HASHSIZE 53 /* doesn't need to be big */ +#define NF_MARK 0x1 /* marker for cycle detection */ +#define NF_ACYCLIC 0x2 /* this node is cycle free */ +#define NF_NODEST 0x4 /* Unreachable */ + +typedef struct node_str NODE; + +struct node_str { + NODE **n_prevp; /* pointer to previous node's n_next */ + NODE *n_next; /* next node in graph */ + NODE **n_arcs; /* array of arcs to other nodes */ + int n_narcs; /* number of arcs in n_arcs[] */ + int n_arcsize; /* size of n_arcs[] array */ + int n_refcnt; /* # of arcs pointing to this node */ + int n_flags; /* NF_* */ + char n_name[1]; /* name of this node */ +}; + +typedef struct _buf { + char *b_buf; + int b_bsize; +} BUF; + +DB *db; +NODE *graph, **cycle_buf, **longest_cycle; +int debug, longest, quiet; + +void add_arc __P((char *, char *)); +void clear_cycle __P((void)); +int find_cycle __P((NODE *, NODE *, int, int)); +NODE *get_node __P((char *)); +void *grow_buf __P((void *, int)); +int main __P((int, char **)); +void remove_node __P((NODE *)); +void tsort __P((void)); +void usage __P((void)); + +int +main(argc, argv) + int argc; + char *argv[]; +{ + BUF *b; + int c, n; + FILE *fp; + int bsize, ch, nused; + BUF bufs[2]; + + fp = NULL; + while ((ch = getopt(argc, argv, "dlq")) != -1) + switch (ch) { + case 'd': + debug = 1; + break; + case 'l': + longest = 1; + break; + case 'q': + quiet = 1; + break; + case '?': + default: + usage(); + } + argc -= optind; + argv += optind; + + switch (argc) { + case 0: + fp = stdin; + break; + case 1: + if ((fp = fopen(*argv, "r")) == NULL) + err(1, "%s", *argv); + break; + default: + usage(); + } + + for (b = bufs, n = 2; --n >= 0; b++) + b->b_buf = grow_buf(NULL, b->b_bsize = 1024); + + /* parse input and build the graph */ + for (n = 0, c = getc(fp);;) { + while (c != EOF && isspace(c)) + c = getc(fp); + if (c == EOF) + break; + + nused = 0; + b = &bufs[n]; + bsize = b->b_bsize; + do { + b->b_buf[nused++] = c; + if (nused == bsize) + b->b_buf = grow_buf(b->b_buf, bsize *= 2); + c = getc(fp); + } while (c != EOF && !isspace(c)); + + b->b_buf[nused] = '\0'; + b->b_bsize = bsize; + if (n) + add_arc(bufs[0].b_buf, bufs[1].b_buf); + n = !n; + } + (void)fclose(fp); + if (n) + errx(1, "odd data count"); + + /* do the sort */ + tsort(); + exit(0); +} + +/* double the size of oldbuf and return a pointer to the new buffer. */ +void * +grow_buf(bp, size) + void *bp; + int size; +{ + if ((bp = realloc(bp, (u_int)size)) == NULL) + err(1, "realloc"); + return (bp); +} + +/* + * add an arc from node s1 to node s2 in the graph. If s1 or s2 are not in + * the graph, then add them. + */ +void +add_arc(s1, s2) + char *s1, *s2; +{ + NODE *n1; + NODE *n2; + int bsize, i; + + n1 = get_node(s1); + + if (!strcmp(s1, s2)) + return; + + n2 = get_node(s2); + + /* + * Check if this arc is already here. + */ + for (i = 0; i < n1->n_narcs; i++) + if (n1->n_arcs[i] == n2) + return; + /* + * Add it. + */ + if (n1->n_narcs == n1->n_arcsize) { + if (!n1->n_arcsize) + n1->n_arcsize = 10; + bsize = n1->n_arcsize * sizeof(*n1->n_arcs) * 2; + n1->n_arcs = grow_buf(n1->n_arcs, bsize); + n1->n_arcsize = bsize / sizeof(*n1->n_arcs); + } + n1->n_arcs[n1->n_narcs++] = n2; + ++n2->n_refcnt; +} + +/* Find a node in the graph (insert if not found) and return a pointer to it. */ +NODE * +get_node(name) + char *name; +{ + DBT data, key; + NODE *n; + + if (db == NULL && + (db = dbopen(NULL, O_RDWR, 0, DB_HASH, NULL)) == NULL) + err(1, "db: %s", name); + + key.data = name; + key.size = strlen(name) + 1; + + switch ((*db->get)(db, &key, &data, 0)) { + case 0: + memmove(&n, data.data, sizeof(n)); + return (n); + case 1: + break; + default: + case -1: + err(1, "db: %s", name); + } + + if ((n = malloc(sizeof(NODE) + key.size)) == NULL) + err(1, "malloc"); + + n->n_narcs = 0; + n->n_arcsize = 0; + n->n_arcs = NULL; + n->n_refcnt = 0; + n->n_flags = 0; + memmove(n->n_name, name, key.size); + + /* Add to linked list. */ + if ((n->n_next = graph) != NULL) + graph->n_prevp = &n->n_next; + n->n_prevp = &graph; + graph = n; + + /* Add to hash table. */ + data.data = &n; + data.size = sizeof(n); + if ((*db->put)(db, &key, &data, 0)) + err(1, "db: %s", name); + return (n); +} + + +/* + * Clear the NODEST flag from all nodes. + */ +void +clear_cycle() +{ + NODE *n; + + for (n = graph; n != NULL; n = n->n_next) + n->n_flags &= ~NF_NODEST; +} + +/* do topological sort on graph */ +void +tsort() +{ + NODE *n, *next; + int cnt, i; + + while (graph != NULL) { + /* + * Keep getting rid of simple cases until there are none left, + * if there are any nodes still in the graph, then there is + * a cycle in it. + */ + do { + for (cnt = 0, n = graph; n != NULL; n = next) { + next = n->n_next; + if (n->n_refcnt == 0) { + remove_node(n); + ++cnt; + } + } + } while (graph != NULL && cnt); + + if (graph == NULL) + break; + + if (!cycle_buf) { + /* + * Allocate space for two cycle logs - one to be used + * as scratch space, the other to save the longest + * cycle. + */ + for (cnt = 0, n = graph; n != NULL; n = n->n_next) + ++cnt; + cycle_buf = malloc((u_int)sizeof(NODE *) * cnt); + longest_cycle = malloc((u_int)sizeof(NODE *) * cnt); + if (cycle_buf == NULL || longest_cycle == NULL) + err(1, "malloc"); + } + for (n = graph; n != NULL; n = n->n_next) { + if (!(n->n_flags & NF_ACYCLIC)) { + if ((cnt = find_cycle(n, n, 0, 0)) != 0) { + if (!quiet) { + warnx("cycle in data"); + for (i = 0; i < cnt; i++) + warnx("%s", + longest_cycle[i]->n_name); + } + remove_node(n); + clear_cycle(); + break; + } else { + /* to avoid further checks */ + n->n_flags |= NF_ACYCLIC; + clear_cycle(); + } + } + } + if (n == NULL) + errx(1, "internal error -- could not find cycle"); + } +} + +/* print node and remove from graph (does not actually free node) */ +void +remove_node(n) + NODE *n; +{ + NODE **np; + int i; + + (void)printf("%s\n", n->n_name); + for (np = n->n_arcs, i = n->n_narcs; --i >= 0; np++) + --(*np)->n_refcnt; + n->n_narcs = 0; + *n->n_prevp = n->n_next; + if (n->n_next) + n->n_next->n_prevp = n->n_prevp; +} + + +/* look for the longest? cycle from node from to node to. */ +int +find_cycle(from, to, longest_len, depth) + NODE *from, *to; + int depth, longest_len; +{ + NODE **np; + int i, len; + + /* + * avoid infinite loops and ignore portions of the graph known + * to be acyclic + */ + if (from->n_flags & (NF_NODEST|NF_MARK|NF_ACYCLIC)) + return (0); + from->n_flags |= NF_MARK; + + for (np = from->n_arcs, i = from->n_narcs; --i >= 0; np++) { + cycle_buf[depth] = *np; + if (*np == to) { + if (depth + 1 > longest_len) { + longest_len = depth + 1; + (void)memcpy((char *)longest_cycle, + (char *)cycle_buf, + longest_len * sizeof(NODE *)); + } + } else { + if ((*np)->n_flags & (NF_MARK|NF_ACYCLIC|NF_NODEST)) + continue; + len = find_cycle(*np, to, longest_len, depth + 1); + + if (debug) + (void)printf("%*s %s->%s %d\n", depth, "", + from->n_name, to->n_name, len); + + if (len == 0) + (*np)->n_flags |= NF_NODEST; + + if (len > longest_len) + longest_len = len; + + if (len > 0 && !longest) + break; + } + } + from->n_flags &= ~NF_MARK; + return (longest_len); +} + +void +usage() +{ + (void)fprintf(stderr, "usage: tsort [-lq] [file]\n"); + exit(1); +} diff --git a/misc_cmds/units/pathnames.h b/misc_cmds/units/pathnames.h new file mode 100644 index 0000000..b8c1d3d --- /dev/null +++ b/misc_cmds/units/pathnames.h @@ -0,0 +1,33 @@ +/* $FreeBSD: src/usr.bin/units/pathnames.h,v 1.4.56.1.2.1 2009/10/25 01:10:29 kensmith Exp $ */ + +/* + * Copyright (c) 1993 Christopher G. Demetriou + * 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Christopher G. Demetriou. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + */ + +#define _PATH_UNITSLIB "/usr/share/misc/units.lib" diff --git a/misc_cmds/units/units.1 b/misc_cmds/units/units.1 new file mode 100644 index 0000000..80b1333 --- /dev/null +++ b/misc_cmds/units/units.1 @@ -0,0 +1,181 @@ +.\" $FreeBSD: src/usr.bin/units/units.1,v 1.18.22.1.2.1 2009/10/25 01:10:29 kensmith Exp $ +.Dd July 14, 1993 +.Dt UNITS 1 +.Os +.Sh NAME +.Nm units +.Nd conversion program +.Sh SYNOPSIS +.Nm +.Op Fl f Ar filename +.Op Fl qv +.Op Ar from-unit to-unit +.Sh OPTIONS +The following options are available: +.Bl -tag -width indent +.It Fl f Ar filename +Specify the name of the units data file to load. +.It Fl q +Suppress prompting of the user for units and the display of statistics +about the number of units loaded. +.It Fl v +Print the version number. +.It Ar from-unit to-unit +Allow a single unit conversion to be done directly from the command +line. +The program will not print prompts. +It will print out the +result of the single specified conversion. +.El +.Sh DESCRIPTION +The +.Nm +program converts quantities expressed in various scales to +their equivalents in other scales. +The +.Nm +program can only +handle multiplicative scale changes. +It cannot convert Celsius +to Fahrenheit, for example. +It works interactively by prompting +the user for input: +.Bd -literal + You have: meters + You want: feet + * 3.2808399 + / 0.3048 + + You have: cm^3 + You want: gallons + * 0.00026417205 + / 3785.4118 + + You have: meters/s + You want: furlongs/fortnight + * 6012.8848 + / 0.00016630952 + + You have: 1|2 inch + You want: cm + * 1.27 + / 0.78740157 +.Ed +.Pp +Powers of units can be specified using the '^' character as shown in +the example, or by simple concatenation: 'cm3' is equivalent to 'cm^3'. +Multiplication of units can be specified by using spaces, a dash or +an asterisk. +Division of units is indicated by the slash ('/'). +Note that multiplication has a higher precedence than division, +so 'm/s/s' is the same as 'm/s^2' or 'm/s s'. +Division of numbers +must be indicated using the vertical bar ('|'). +To convert half a +meter, you would write '1|2 meter'. +If you write '1/2 meter' then the +units program would interpret that as equivalent to '0.5/meter'. +If you enter incompatible unit types, the units program will +print a message indicating that the units are not conformable and +it will display the reduced form for each unit: +.Bd -literal + You have: ergs/hour + You want: fathoms kg^2 / day + conformability error + 2.7777778e-11 kg m^2 / sec^3 + 2.1166667e-05 kg^2 m / sec +.Ed +.Pp +The conversion information is read from a units data file. +The default +file includes definitions for most familiar units, abbreviations and +metric prefixes. +Some constants of nature included are: +.Pp +.Bl -column -offset indent -compact "mercury" +.It "pi ratio of circumference to diameter +.It "c speed of light +.It "e charge on an electron +.It "g acceleration of gravity +.It "force same as g +.It "mole Avogadro's number +.It "water pressure per unit height of water +.It "mercury pressure per unit height of mercury +.It "au astronomical unit +.El +.Pp +The unit 'pound' is a unit of mass. +Compound names are run together +so 'pound force' is a unit of force. +The unit 'ounce' is also a unit +of mass. +The fluid ounce is 'floz'. +British units that differ from +their US counterparts are prefixed with 'br', and currency is prefixed +with its country name: 'belgiumfranc', 'britainpound'. +When searching +for a unit, if the specified string does not appear exactly as a unit +name, then +.Nm +will try to remove a trailing 's' or a +trailing 'es' and check again for a match. +.Pp +To find out what units are available read the standard units file. +If you want to add your own units you can supply your own file. +A unit is specified on a single line by +giving its name and an equivalence. +Be careful to define +new units in terms of old ones so that a reduction leads to the +primitive units which are marked with '!' characters. +The +.Nm +program will not detect infinite loops that could be caused +by careless unit definitions. +Comments in the unit definition file +begin with a '/' character at the beginning of a line. +.Pp +Prefixes are defined in the same was as standard units, but with +a trailing dash at the end of the prefix name. +If a unit is not found +even after removing trailing 's' or 'es', then it will be checked +against the list of prefixes. +Prefixes will be removed until a legal +base unit is identified. +.Pp +Here is an example of a short units file that defines some basic +units. +.Pp +.Bl -column -offset indent -compact "minute" +.It "m !a! +.It "sec !b! +.It "micro- 1e-6 +.It "minute 60 sec +.It "hour 60 min +.It "inch 0.0254 m +.It "ft 12 inches +.It "mile 5280 ft +.El +.Sh FILES +.Bl -tag -width /usr/share/misc/units.lib -compact +.It Pa /usr/share/misc/units.lib +the standard units library +.El +.Sh AUTHORS +.An Adrian Mariano Aq adrian@cam.cornell.edu +.Sh BUGS +The effect of including a '/' in a prefix is surprising. +.Pp +Exponents entered by the user can be only one digit. +You can work around this by multiplying several terms. +.Pp +The user must use | to indicate division of numbers and / to +indicate division of symbols. +This distinction should not +be necessary. +.Pp +The program contains various arbitrary limits on the length +of the units converted and on the length of the data file. +.Pp +The program should use a hash table to store units so that +it does not take so long to load the units list and check +for duplication. diff --git a/misc_cmds/units/units.c b/misc_cmds/units/units.c new file mode 100644 index 0000000..169c79b --- /dev/null +++ b/misc_cmds/units/units.c @@ -0,0 +1,749 @@ +/* + * units.c Copyright (c) 1993 by Adrian Mariano (adrian@cam.cornell.edu) + * + * 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. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * Disclaimer: This software is provided by the author "as is". The author + * shall not be liable for any damages caused in any way by this software. + * + * I would appreciate (though I do not require) receiving a copy of any + * improvements you might make to this program. + */ + +#ifndef lint +static const char rcsid[] = + "$FreeBSD: src/usr.bin/units/units.c,v 1.11.2.1.2.1 2009/10/25 01:10:29 kensmith Exp $"; +#endif /* not lint */ + +#include +#include +#include +#include +#include +#include + +#include "pathnames.h" + +#define VERSION "1.0" + +#ifndef UNITSFILE +#define UNITSFILE _PATH_UNITSLIB +#endif + +#define MAXUNITS 1000 +#define MAXPREFIXES 100 + +#define MAXSUBUNITS 500 + +#define PRIMITIVECHAR '!' + +const char *powerstring = "^"; + +struct { + char *uname; + char *uval; +} unittable[MAXUNITS]; + +struct unittype { + char *numerator[MAXSUBUNITS]; + char *denominator[MAXSUBUNITS]; + double factor; + double offset; + int quantity; +}; + +struct { + char *prefixname; + char *prefixval; +} prefixtable[MAXPREFIXES]; + + +char NULLUNIT[] = ""; + +#ifdef MSDOS +#define SEPARATOR ";" +#else +#define SEPARATOR ":" +#endif + +int unitcount; +int prefixcount; + +char *dupstr(const char *str); +void readunits(const char *userfile); +void initializeunit(struct unittype * theunit); +int addsubunit(char *product[], char *toadd); +void showunit(struct unittype * theunit); +void zeroerror(void); +int addunit(struct unittype *theunit, char *toadd, int flip, int quantity); +int compare(const void *item1, const void *item2); +void sortunit(struct unittype * theunit); +void cancelunit(struct unittype * theunit); +char *lookupunit(const char *unit); +int reduceproduct(struct unittype * theunit, int flip); +int reduceunit(struct unittype * theunit); +int compareproducts(char **one, char **two); +int compareunits(struct unittype * first, struct unittype * second); +int completereduce(struct unittype * unit); +void showanswer(struct unittype * have, struct unittype * want); +void usage(void); + +char * +dupstr(const char *str) +{ + char *ret; + + ret = malloc(strlen(str) + 1); + if (!ret) + errx(3, "memory allocation error"); + strcpy(ret, str); + return (ret); +} + + +void +readunits(const char *userfile) +{ + FILE *unitfile; + char line[512], *lineptr; + int len, linenum, i; + + unitcount = 0; + linenum = 0; + + if (userfile) { + unitfile = fopen(userfile, "rt"); + if (!unitfile) + errx(1, "unable to open units file '%s'", userfile); + } + else { + unitfile = fopen(UNITSFILE, "rt"); + if (!unitfile) { + char *direc, *env; + char filename[1000]; + + env = getenv("PATH"); + if (env) { + direc = strtok(env, SEPARATOR); + while (direc) { + snprintf(filename, sizeof(filename), + "%s/%s", direc, UNITSFILE); + unitfile = fopen(filename, "rt"); + if (unitfile) + break; + direc = strtok(NULL, SEPARATOR); + } + } + if (!unitfile) + errx(1, "can't find units file '%s'", UNITSFILE); + } + } + while (!feof(unitfile)) { + if (!fgets(line, sizeof(line), unitfile)) + break; + linenum++; + lineptr = line; + if (*lineptr == '/') + continue; + lineptr += strspn(lineptr, " \n\t"); + len = strcspn(lineptr, " \n\t"); + lineptr[len] = 0; + if (!strlen(lineptr)) + continue; + if (lineptr[strlen(lineptr) - 1] == '-') { /* it's a prefix */ + if (prefixcount == MAXPREFIXES) { + warnx("memory for prefixes exceeded in line %d", linenum); + continue; + } + lineptr[strlen(lineptr) - 1] = 0; + prefixtable[prefixcount].prefixname = dupstr(lineptr); + for (i = 0; i < prefixcount; i++) + if (!strcmp(prefixtable[i].prefixname, lineptr)) { + warnx("redefinition of prefix '%s' on line %d ignored", + lineptr, linenum); + continue; + } + lineptr += len + 1; + lineptr += strspn(lineptr, " \n\t"); + len = strcspn(lineptr, "\n\t"); + if (len == 0) { + warnx("unexpected end of prefix on line %d", + linenum); + continue; + } + lineptr[len] = 0; + prefixtable[prefixcount++].prefixval = dupstr(lineptr); + } + else { /* it's not a prefix */ + if (unitcount == MAXUNITS) { + warnx("memory for units exceeded in line %d", linenum); + continue; + } + unittable[unitcount].uname = dupstr(lineptr); + for (i = 0; i < unitcount; i++) + if (!strcmp(unittable[i].uname, lineptr)) { + warnx("redefinition of unit '%s' on line %d ignored", + lineptr, linenum); + continue; + } + lineptr += len + 1; + lineptr += strspn(lineptr, " \n\t"); + if (!strlen(lineptr)) { + warnx("unexpected end of unit on line %d", + linenum); + continue; + } + len = strcspn(lineptr, "\n\t"); + lineptr[len] = 0; + unittable[unitcount++].uval = dupstr(lineptr); + } + } + fclose(unitfile); +} + +void +initializeunit(struct unittype * theunit) +{ + theunit->numerator[0] = theunit->denominator[0] = NULL; + theunit->factor = 1.0; + theunit->offset = 0.0; + theunit->quantity = 0; +} + + +int +addsubunit(char *product[], char *toadd) +{ + char **ptr; + + for (ptr = product; *ptr && *ptr != NULLUNIT; ptr++); + if (ptr >= product + MAXSUBUNITS) { + warnx("memory overflow in unit reduction"); + return 1; + } + if (!*ptr) + *(ptr + 1) = 0; + *ptr = dupstr(toadd); + return 0; +} + + +void +showunit(struct unittype * theunit) +{ + char **ptr; + int printedslash; + int counter = 1; + + printf("\t%.8g", theunit->factor); + if (theunit->offset) + printf("&%.8g", theunit->offset); + for (ptr = theunit->numerator; *ptr; ptr++) { + if (ptr > theunit->numerator && **ptr && + !strcmp(*ptr, *(ptr - 1))) + counter++; + else { + if (counter > 1) + printf("%s%d", powerstring, counter); + if (**ptr) + printf(" %s", *ptr); + counter = 1; + } + } + if (counter > 1) + printf("%s%d", powerstring, counter); + counter = 1; + printedslash = 0; + for (ptr = theunit->denominator; *ptr; ptr++) { + if (ptr > theunit->denominator && **ptr && + !strcmp(*ptr, *(ptr - 1))) + counter++; + else { + if (counter > 1) + printf("%s%d", powerstring, counter); + if (**ptr) { + if (!printedslash) + printf(" /"); + printedslash = 1; + printf(" %s", *ptr); + } + counter = 1; + } + } + if (counter > 1) + printf("%s%d", powerstring, counter); + printf("\n"); +} + + +void +zeroerror(void) +{ + warnx("unit reduces to zero"); +} + +/* + Adds the specified string to the unit. + Flip is 0 for adding normally, 1 for adding reciprocal. + Quantity is 1 if this is a quantity to be converted rather than a pure unit. + + Returns 0 for successful addition, nonzero on error. +*/ + +int +addunit(struct unittype * theunit, char *toadd, int flip, int quantity) +{ + char *scratch, *savescr; + char *item; + char *divider, *slash, *offset; + int doingtop; + + if (!strlen(toadd)) + return 1; + + savescr = scratch = dupstr(toadd); + for (slash = scratch + 1; *slash; slash++) + if (*slash == '-' && + (tolower(*(slash - 1)) != 'e' || + !strchr(".0123456789", *(slash + 1)))) + *slash = ' '; + slash = strchr(scratch, '/'); + if (slash) + *slash = 0; + doingtop = 1; + do { + item = strtok(scratch, " *\t\n/"); + while (item) { + if (strchr("0123456789.", *item)) { /* item is a number */ + double num, offsetnum; + + if (quantity) + theunit->quantity = 1; + + offset = strchr(item, '&'); + if (offset) { + *offset = 0; + offsetnum = atof(offset+1); + } else + offsetnum = 0.0; + + divider = strchr(item, '|'); + if (divider) { + *divider = 0; + num = atof(item); + if (!num) { + zeroerror(); + return 1; + } + if (doingtop ^ flip) { + theunit->factor *= num; + theunit->offset *= num; + } else { + theunit->factor /= num; + theunit->offset /= num; + } + num = atof(divider + 1); + if (!num) { + zeroerror(); + return 1; + } + if (doingtop ^ flip) { + theunit->factor /= num; + theunit->offset /= num; + } else { + theunit->factor *= num; + theunit->offset *= num; + } + } + else { + num = atof(item); + if (!num) { + zeroerror(); + return 1; + } + if (doingtop ^ flip) { + theunit->factor *= num; + theunit->offset *= num; + } else { + theunit->factor /= num; + theunit->offset /= num; + } + } + if (doingtop ^ flip) + theunit->offset += offsetnum; + } + else { /* item is not a number */ + int repeat = 1; + + if (strchr("23456789", + item[strlen(item) - 1])) { + repeat = item[strlen(item) - 1] - '0'; + item[strlen(item) - 1] = 0; + } + for (; repeat; repeat--) + if (addsubunit(doingtop ^ flip ? theunit->numerator : theunit->denominator, item)) + return 1; + } + item = strtok(NULL, " *\t/\n"); + } + doingtop--; + if (slash) { + scratch = slash + 1; + } + else + doingtop--; + } while (doingtop >= 0); + free(savescr); + return 0; +} + + +int +compare(const void *item1, const void *item2) +{ + return strcmp(*(const char * const *)item1, *(const char * const *)item2); +} + + +void +sortunit(struct unittype * theunit) +{ + char **ptr; + unsigned int count; + + for (count = 0, ptr = theunit->numerator; *ptr; ptr++, count++); + qsort(theunit->numerator, count, sizeof(char *), compare); + for (count = 0, ptr = theunit->denominator; *ptr; ptr++, count++); + qsort(theunit->denominator, count, sizeof(char *), compare); +} + + +void +cancelunit(struct unittype * theunit) +{ + char **den, **num; + int comp; + + den = theunit->denominator; + num = theunit->numerator; + + while (*num && *den) { + comp = strcmp(*den, *num); + if (!comp) { +/* if (*den!=NULLUNIT) free(*den); + if (*num!=NULLUNIT) free(*num);*/ + *den++ = NULLUNIT; + *num++ = NULLUNIT; + } + else if (comp < 0) + den++; + else + num++; + } +} + + + + +/* + Looks up the definition for the specified unit. + Returns a pointer to the definition or a null pointer + if the specified unit does not appear in the units table. +*/ + +static char buffer[100]; /* buffer for lookupunit answers with + prefixes */ + +char * +lookupunit(const char *unit) +{ + int i; + char *copy; + + for (i = 0; i < unitcount; i++) { + if (!strcmp(unittable[i].uname, unit)) + return unittable[i].uval; + } + + if (unit[strlen(unit) - 1] == '^') { + copy = dupstr(unit); + copy[strlen(copy) - 1] = 0; + for (i = 0; i < unitcount; i++) { + if (!strcmp(unittable[i].uname, copy)) { + strlcpy(buffer, copy, sizeof(buffer)); + free(copy); + return buffer; + } + } + free(copy); + } + if (unit[strlen(unit) - 1] == 's') { + copy = dupstr(unit); + copy[strlen(copy) - 1] = 0; + for (i = 0; i < unitcount; i++) { + if (!strcmp(unittable[i].uname, copy)) { + strlcpy(buffer, copy, sizeof(buffer)); + free(copy); + return buffer; + } + } + if (copy[strlen(copy) - 1] == 'e') { + copy[strlen(copy) - 1] = 0; + for (i = 0; i < unitcount; i++) { + if (!strcmp(unittable[i].uname, copy)) { + strlcpy(buffer, copy, sizeof(buffer)); + free(copy); + return buffer; + } + } + } + free(copy); + } + for (i = 0; i < prefixcount; i++) { + size_t len = strlen(prefixtable[i].prefixname); + if (len && !strncmp(prefixtable[i].prefixname, unit, len)) { + if (!strlen(unit + len) || lookupunit(unit + len)) { + snprintf(buffer, sizeof(buffer), "%s %s", + prefixtable[i].prefixval, unit + len); + return buffer; + } + } + } + return 0; +} + + + +/* + reduces a product of symbolic units to primitive units. + The three low bits are used to return flags: + + bit 0 (1) set on if reductions were performed without error. + bit 1 (2) set on if no reductions are performed. + bit 2 (4) set on if an unknown unit is discovered. +*/ + + +#define ERROR 4 + +int +reduceproduct(struct unittype * theunit, int flip) +{ + + char *toadd; + char **product; + int didsomething = 2; + + if (flip) + product = theunit->denominator; + else + product = theunit->numerator; + + for (; *product; product++) { + + for (;;) { + if (!strlen(*product)) + break; + toadd = lookupunit(*product); + if (!toadd) { + printf("unknown unit '%s'\n", *product); + return ERROR; + } + if (strchr(toadd, PRIMITIVECHAR)) + break; + didsomething = 1; + if (*product != NULLUNIT) { + free(*product); + *product = NULLUNIT; + } + if (addunit(theunit, toadd, flip, 0)) + return ERROR; + } + } + return didsomething; +} + + +/* + Reduces numerator and denominator of the specified unit. + Returns 0 on success, or 1 on unknown unit error. +*/ + +int +reduceunit(struct unittype * theunit) +{ + int ret; + + ret = 1; + while (ret & 1) { + ret = reduceproduct(theunit, 0) | reduceproduct(theunit, 1); + if (ret & 4) + return 1; + } + return 0; +} + + +int +compareproducts(char **one, char **two) +{ + while (*one || *two) { + if (!*one && *two != NULLUNIT) + return 1; + if (!*two && *one != NULLUNIT) + return 1; + if (*one == NULLUNIT) + one++; + else if (*two == NULLUNIT) + two++; + else if (strcmp(*one, *two)) + return 1; + else + one++, two++; + } + return 0; +} + + +/* Return zero if units are compatible, nonzero otherwise */ + +int +compareunits(struct unittype * first, struct unittype * second) +{ + return + compareproducts(first->numerator, second->numerator) || + compareproducts(first->denominator, second->denominator); +} + + +int +completereduce(struct unittype * unit) +{ + if (reduceunit(unit)) + return 1; + sortunit(unit); + cancelunit(unit); + return 0; +} + + +void +showanswer(struct unittype * have, struct unittype * want) +{ + if (compareunits(have, want)) { + printf("conformability error\n"); + showunit(have); + showunit(want); + } + else if (have->offset != want->offset) { + if (want->quantity) + printf("WARNING: conversion of non-proportional quantities.\n"); + printf("\t"); + if (have->quantity) + printf("%.8g\n", + (have->factor + have->offset-want->offset)/want->factor); + else + printf(" (-> x*%.8g %+.8g)\n\t (<- y*%.8g %+.8g)\n", + have->factor / want->factor, + (have->offset-want->offset)/want->factor, + want->factor / have->factor, + (want->offset - have->offset)/have->factor); + } + else + printf("\t* %.8g\n\t/ %.8g\n", have->factor / want->factor, + want->factor / have->factor); +} + + +void +usage(void) +{ + fprintf(stderr, + "usage: units [-f unitsfile] [-q] [-v] [from-unit to-unit]\n"); + exit(3); +} + + +int +main(int argc, char **argv) +{ + + struct unittype have, want; + char havestr[81], wantstr[81]; + int optchar; + char *userfile = 0; + int quiet = 0; + + while ((optchar = getopt(argc, argv, "vqf:")) != -1) { + switch (optchar) { + case 'f': + userfile = optarg; + break; + case 'q': + quiet = 1; + break; + case 'v': + fprintf(stderr, "\n units version %s Copyright (c) 1993 by Adrian Mariano\n", + VERSION); + fprintf(stderr, " This program may be freely distributed\n"); + usage(); + default: + usage(); + break; + } + } + + if (optind != argc - 2 && optind != argc) + usage(); + + readunits(userfile); + + if (optind == argc - 2) { + strlcpy(havestr, argv[optind], sizeof(havestr)); + strlcpy(wantstr, argv[optind + 1], sizeof(wantstr)); + initializeunit(&have); + addunit(&have, havestr, 0, 1); + completereduce(&have); + initializeunit(&want); + addunit(&want, wantstr, 0, 1); + completereduce(&want); + showanswer(&have, &want); + } + else { + if (!quiet) + printf("%d units, %d prefixes\n", unitcount, + prefixcount); + for (;;) { + do { + initializeunit(&have); + if (!quiet) + printf("You have: "); + if (!fgets(havestr, sizeof(havestr), stdin)) { + if (!quiet) + putchar('\n'); + exit(0); + } + } while (addunit(&have, havestr, 0, 1) || + completereduce(&have)); + do { + initializeunit(&want); + if (!quiet) + printf("You want: "); + if (!fgets(wantstr, sizeof(wantstr), stdin)) { + if (!quiet) + putchar('\n'); + exit(0); + } + } while (addunit(&want, wantstr, 0, 1) || + completereduce(&want)); + showanswer(&have, &want); + } + } + + return(0); +} diff --git a/misc_cmds/units/units.lib b/misc_cmds/units/units.lib new file mode 100644 index 0000000..9d415ef --- /dev/null +++ b/misc_cmds/units/units.lib @@ -0,0 +1,732 @@ +/ $FreeBSD: src/usr.bin/units/units.lib,v 1.19.2.1.2.1 2009/10/25 01:10:29 kensmith Exp $ + +/ primitive units + +m !a! +kg !b! +sec !c! +coul !d! +candela !e! +usdollar !f! +euro !g! +bit !h! +erlang !i! +K !j! + +/ prefixes + +yotta- 1e24 +zetta- 1e21 +exa- 1e18 +peta- 1e15 +tera- 1e12 +giga- 1e9 +mega- 1e6 +myria- 1e4 +kilo- 1e3 +hecto- 1e2 +deka- 1e1 +deca- deka +deci- 1e-1 +centi- 1e-2 +milli- 1e-3 +micro- 1e-6 +nano- 1e-9 +pico- 1e-12 +femto- 1e-15 +atto- 1e-18 +zopto- 1e-21 +zepto- zopto +yocto- 1e-24 + +semi- .5 +demi- .5 + +Y- yotta +Z- zetta +E- exa +P- peta +T- tera +G- giga +M- mega +k- kilo +h- hecto +da- deka +d- deci +c- centi +m- milli +n- nano +p- pico +f- femto +a- atto +z- zopto +y- yocto + +/ binary prefixes introduced in 1999 +exbi- 1152921504606846976 +pebi- 1125899906842624 +tebi- 1099511627776 +gibi- 1073741824 +mebi- 1048576 +kibi- 1024 + +Ei- exbi +Pi- pebi +Ti- tebi +Gi- gibi +Mi- mebi +Ki- kibi + +/ constants + +fuzz 1 +pi 3.14159265358979323846 +c 2.99792458e+8 m/sec +g0 9.80665 m/sec2 +g g0 +bigG 6.67428e-11 m3/kg/s2 +AU 1.49597870691e+11 m fuzz +au AU +mole 6.0221417930e+23 fuzz +e 1.6021917e-19 coul fuzz +energy c2 +force g +mercury 1.3332239e+5 kg/m2-sec2 +hg mercury +mmHg 0.001 m hg +#mu 4.e-7 pi-N/A2 +epsilon 1.0 /mu/c2 +alpha 0.5 mu-c-e2/planck +planck 6.6260755e-34 joule-sec +hbar 0.5 planck/pi +electronmass 9.1093821545-31 kg +protonmass 1.6726217129-27 kg +neutronmass 1.6749272928-27 kg + +/ dimensionless + +radian .5 / pi +degree 1|180 pi-radian +circle 2 pi-radian +turn 2 pi-radian +revolution turn +rev turn +grade .9 degree +arcdeg 1 degree +arcmin 1|60 arcdeg +ccs 1|36 erlang +arcsec 1|60 arcmin + +steradian radian2 +sphere 4 pi-steradian +sr steradian + +/ Time + +second sec +s sec +minute 60 sec +min minute +hour 60 min +hr hour +day 24 hr +da day +week 7 day +year 365.24219879 day fuzz +yr year +month 1|12 year +us microsec + +/ Mass + +gram millikg +gm gram +metricton kilokg + +/ Avoirdupois + +lb .45359237 kg +pound lb +lbf lb g +ounce 1|16 lb +oz ounce +dram 1|16 oz +dr dram +grain 1|7000 lb +gr grain +shortton 2000 lb +ton shortton +longton 2240 lb + +/ Apothecary + +scruple 20 grain +apdram 60 grain +apounce 480 grain +appound 5760 grain +troypound appound + +/ Mining + +troyounce apounce +troz apounce +pennyweight 1|20 troz +pwt pennyweight +dwt pennyweight + +/ Length + +meter m +micron micrometer +angstrom decinanometer +ao 0.25 alpha/pi/rydbergconst + +inch 2.54 cm +in inch +foot 12 in +feet foot +ft foot +yard 3 ft +yd yard +rod 5.5 yd +rd rod +mile 5280 ft +mi mile + +british 1200|3937 m/ft +nmile 1852 m + +acre 4840 yd2 + +cc cm3 +liter kilocc +ml milliliter + +/ US Liquid + +gallon 231 in3 +imperial 1.20095 +gal gallon +quart 1|4 gal +qt quart +pint 1|2 qt +pt pint + +floz 1|16 pt +fldr 1|8 floz +shot 3|2 floz + +/ US Dry + +dry 268.8025 in3/gallon fuzz +peck 8 dry-quart +pk peck +bushel 4 peck +bu bushel +chaldron 36 bushel + +/ British + +brgallon 277.420 in3 fuzz +brquart 1|4 brgallon +brpint 1|2 brquart +brfloz 1|20 brpint +brpeck 554.84 in3 fuzz +brbushel 4 brpeck +brhundredweight 112 lb + +/ Bottles + +bottle 750 milliliter +/bottle fifth + +miniature 100 milliliter +split 1|4 bottle +half 1|2 bottle +magnum 2 bottle +jeroboam 4 bottle +rehoboam 6 bottle +methuselah 8 bottle +salmanazar 12 bottle +balthazar 16 bottle +nebuchadnezzar 20 bottle +sovereign 34 bottle + +/ Bottles - alternate names and spellings + +pony split +fillette half +tappit-hen 3 imperial +rheoboam rehoboam +shalmaneser salmanazar + +/ Russian +berkovets 10 pood +pood 40 funt +funt 0.40951 kg +lot 1|32 funt +zolotnik 1|3 lot +dolya 1|96 zolotnik +rumile 7 verst +mezhevayaverst 2 verst +verst 1066.8 m +sazhen 1|500 verst +kosayasazhen 1|430.2 verst +arshin 1|1500 verst +/ is not exactly defined +ruell 16.54 in +liniya 1|10 in +vershok 1.75 in +pyad 7 in +vedro 12.3 liter +shtoff 1|10 vedro +vinebottle 1|16 vedro +vodkabottle 1|20 vedro +charka 1|100 vedro +shkalik 1|200 vedro +desyatina_state 109.3 are +desyatina_farmery 0.75 desyatina_state +sqverst 104.2 desyatina_state +sqarshin 1|21600 desyatina_state +sqfoot 1|117600 desyatina_state + +/ Energy Work + +newton kg-m/sec2 +nt newton +N newton +joule nt-m +J joule +cal 4.1868 joule + +/ Electrical + +coulomb coul +C coul +ampere coul/sec +A ampere +amp ampere +watt joule/sec +W watt +volt watt/amp +ohm volt/amp +mho /ohm +farad coul/volt +F farad +henry sec2/farad +H henry +weber volt-sec +Wb weber + +/ Light + +cd candela +lumen cd sr +lux cd sr/m2 + +/ EMU currencies have constant exchange rate against Euro since 1.1.1999. +/ See http://en.wikipedia.org/wiki/Euro for details. +austriaschilling 1|13.7603 euro +belgiumfranc 1|40.3399 euro +finlandmarkka 1|5.94573 euro +francefranc 1|6.55957 euro +germanymark 1|1.95583 euro +greecedrachma 1|340.750 euro +irelandpunt 1|0.787564 euro +italylira 1|1936.27 euro +luxembourgfranc 1|40.3399 euro +netherlandsguilder 1|2.20371 euro +portugalescudo 1|200.482 euro +spainpeseta 1|166.386 euro +sloveniantolar 1|239.640 euro +cypriotpound 1|0.585274 euro +malteselira 1|0.429300 euro +slovakkoruna 1|30.1260 euro + +/ These ones are pegged to the Euro +/ See http://en.wikipedia.org/wiki/Euro for details. +bosniaherzegovinamark 1|1.95583 euro +bulgarianlev 1|1.95583 euro +capeverdeanescudo 1|110.265 euro +centralafricancfafranc 1|655.957 euro +comorosfranc 1|491.96775 euro +danishkrone 1|7.46038 euro +estoniakroon 1|15.6466 euro +lithuanianlitas 1|3.45280 euro +pacificfrancexchange 1|0.00838 euro +westafricancfafranc 1|655.957 euro + +/ These ones are pegged on the US Dollar +/ See http://en.wikipedia.org/wiki/USD for details. +dollar usdollar +arubanflorin 1|1.75 usdollar +bahamiandollar 1|1 usdollar +bahrainidinar 1|0.376 usdollar +barbadiandollar 1|2 usdollar +belizedollar 1|2 usdollar +belarusianruble 1|2135 usdollar +bermudiandollar 1|1 usdollar +caymanislandsdollar 1.2 usdollar +cubanconvertiblepeso 1.08 usdollar +djiboutianfranc 1|177.721 usdollar +eastcaribbeandollar 1|2.7 usdollar +eritreannakfa 1|15 usdollar +hongkongdollar 1|7.80 usdollar +macanesepatacas 1|1.03 hongkongdollar +jordaniandinar 1|0.709 usdollar +lebanesepound 1|1507.5 usdollar +maldivianrufiyaa 1|12.8 usdollar +netherlandsantilleanguilder 1|1.79 usdollar +omanirial 2.6008 usdollar +qataririyal 1|3.64 usdollar +saudiriyal 1|3.75 usdollar +unitedarabemiratesdirham 1|3.6725 usdollar + +bosniamark bosniaherzegovinamark +cfafranc centralafricancfafranc +cfpfranc pacificfrancexchange +drachma greecedrachma +escudo portugalescudo +franc francefranc +guilder netherlandsguilder +herzegovinamark bosniaherzegovinamark +hollandguilder netherlandsguilder +lira italylira +mark germanymark +markka finlandmarkka +peseta spainpeseta +rand southafricarand + +/ computer + +baud bit/sec +nibble 4 bit +nybble nibble +byte 8 bit +word 2 byte +block 512 byte +kbyte 1024 byte +megabyte 1024 kbyte +gigabyte 1024 megabyte +terabyte 1024 gigabyte +petabyte 1024 terabyte +exabyte 1024 petabyte +zettabyte 1024 exabyte +yottabyte 1024 zettabyte +kilobyte kbyte +meg megabyte + + +/ Trivia + +% 1|100 +abampere 10 ampere +admiraltyknot 6080 ft/hr +apostilb cd/pi-m2 +are 1e+2 m2 +asb apostilb +arpentcan 27.52 mi +arpentlin 191.835 ft +astronomicalunit au +atmosphere 1.01325e+5 nt/m2 +atm atmosphere +atomicmassunit 1.66053878283e-27 kg fuzz +# year 3.15569259747e7 sec fuzz +amu atomicmassunit +bag 94 lb +bakersdozen 13 +bar 1e+5 nt/m2 +barie 1e-1 nt/m2 +barleycorn 1|3 in +barn 1e-28 m2 +oilbarrel 42 gal +barrel oilbarrel +barye 1e-1 nt/m2 +baryl microbar +bev 1e+9 e-volt +biot 10 amp +blondel cd/pi-m2 +boardfoot 144 in3 +bolt 40 yd +bottommeasure 1|40 in +britishthermalunit 1.05506e+3 joule fuzz +btu britishthermalunit +refrigeration 12000 btu/ton-hour +buck usdollar +cable 720 ft +caliber 1e-2 in +calorie cal +carat 205 milligram +caratgold 1|24 +cent centidollar +cental 100 lb +centesimalminute 1e-2 grade +centesimalsecond 1e-4 grade +century 100 year +cfs ft3/sec +chain 66 ft +circularinch 1|4 pi-in2 +circularmil 1e-6|4 pi-in2 +clusec 1e-8 mm-hg m3/s +coomb 4 bu +cord 128 ft3 +cordfoot cord +crith 9.06e-2 gm +cubit 18 in +cup 1|2 pt +curie 3.7e+10 /sec +dalton amu +decade 10 yr +dioptre /m +displacementton 35 ft3 +doppelzentner 100 kg +dozen 12 +drop .03 cm3 +dyne cm-gm/sec2 +electronvolt e-volt +ell 45 in +engineerschain 100 ft +engineerslink 100|100 ft +equivalentfootcandle lumen/pi-ft2 +equivalentlux lumen/pi-m2 +equivalentphot cd/pi-cm2 +erg cm2-gm/sec2 +ev e-volt +faraday 9.6485309e+4 coul +fathom 6 ft +fermi 1e-15 m +fifth 4|5 qt +fin 5 usdollar +finger 7|8 in +firkin 9 gal +footcandle lumen/ft2 +footlambert cd/pi-ft2 +fortnight 14 da +franklin 3.33564e-10 coul +frigorie kilocal +furlong 220 yd +galileo 1e-2 m/sec2 +gamma 1e-9 weber/m2 +gauss 1e-4 weber/m2 +G gauss +geodeticfoot british-ft +geographicalmile 1852 m +gilbert 2.5 amp/pi +gill 1|4 pt +gross 144 +gunterschain 22 yd +hand 4 in +hartree 2 rydberg +head water +hectare 1e+4 m2 +hefnercandle .92 cd +hertz /sec +Hz hertz +hogshead 63 gallon +hd hogshead +homestead 1|4 mi2 +horsepower 735.50 watt +hp horsepower +hubble 1e9 ly +hyl gm force sec2/m +hz /sec +imaginarycubicfoot 1.4 ft3 +jansky 1e-26 W/m2-Hz +Jy jansky +karat 1|24 +kayser /cm +key kg +kilderkin 18 gal +knot nmile/hr +kn knot +lambert cd/pi-cm2 +Lb lambert +langley cal/cm2 +last 80 bu +league 3 mi +lightyear c-yr +ly lightyear +line 1|12 in +link 66|100 ft +longhundredweight 112 lb +longquarter 28 lb +lusec 1e-6 mm-hg m3/s +m_earth 5.97223e24 kg +m_moon 7.34e22 kg +m_sun 1.98843e30 kg +mach 331.46 m/sec +marineleague 3 nmile +maxwell 1e-8 weber +Mx maxwell +metriccarat 200 milligram +mgd megagal/day +mh millihenry +mil 1e-3 in +millennium 1000 year +minersinch 1.5 ft3/min +minim 1|60 fldr +mo month +mpg mile/gal +mph mile/hr +nail 1|16 yd +nauticalmile nmile +nit cd/m2 +noggin 1|8 qt +nox 1e-3 lux +oersted 2.5e+2 amp/m/pi +Oe oersted +pace 36 in +pair 2 +palm 3 in +parasang 3.5 mi +parsec AU-radian/arcsec +pascal nt/m2 +Pa pascal +pc parsec +percent % +perch rd +phot lumen/cm2 +pica 1|6 in +pieze 1e+3 nt/m2 +pipe 4 barrel +point 1|72 in +poise gm/cm-sec +P poise +pole rd +pond 9.80665e-3 nt +poundal ft-lb/sec2 +pdl poundal +proof 1|200 +psi lb-g/in2 +quarter 9 in +quartersection 1|4 mi2 +quintal 100 kg +quire 25 +r_earth 6.378e8 cm +r_moon 1.738e7 cm +r_sun 6.9599e10 cm +rackunit 1.75 in +rad 100 erg/gm +ream 500 +registerton 100 ft3 +rem 0.01 J/kg +rhe 10 m2/nt-sec +rontgen 2.58e-4 curie/kg +roentgen rontgen +rood 1.21e+3 yd +rope 20 ft +RU rackunit +rutherford 1e+6 /sec +rydbergconst 0.5 elctronmass-c-alpha2/planck +rydberg rydbergconst-planck-c +sabin 1 ft2 +sack 3 bu +score 20 +seam 8 bu +section mi2 +shed 1e-24 barn +shippington 40 ft3 +shorthundredweight 100 lb +shortquarter 25 lb +siemens /ohm +sigma microsec +skein 120 yd +skot 1e-3 apostilb +slug lb-g-sec2/ft +smoot 67 in +span 9 in +spat 4 pi sr +spindle 14400 yd +square 100 ft2 +stere m3 +sthene 1e+3 nt +stilb cd/cm2 +sb stilb +stoke 1e-4 m2/sec +stone 14 lb +strike 2 bu +surveyfoot british-ft +surveyyard 3 surveyfoot +surveyorschain 66 ft +surveyorslink 66|100 ft +tablespoon 4 fldr +tbl tablespoon +tbsp tablespoon +teaspoon 4|3 fldr +tesla weber/m2 +T tesla +therm 1e+5 btu +thermie 1e+6 cal +timberfoot ft3 +tnt 4.6e+6 m2/sec2 +tonne 1e+6 gm +torr mm hg +township 36 mi2 +tsp teaspoon +tun 8 barrel +water gram g / cc +wey 40 bu +weymass 252 lb +Xunit 1.00206e-13 m +k 1.38047e-16 erg/degC + + +degC 1&+273.15 K +kelvin K +brewster 1e-12 m2/newton +degF 5|9&255.37222222222222222222 K +degreesrankine 5|9 K +degrankine degreesrankine +degreerankine degreesrankine +degreaumur 10|8&+273.15 K +drachm 60 grain +poncelet 100 kg m g / sec +denier .05|450 gram / m +tex .001 gram / m +englishell 45 inch +scottishell 37.2 inch +flemishell 27 inch +V volt +eV e V +bohrradius hbar2-C2/8.988e9 N m2-e2-electronmass +becquerel 1|3.7e10 curie +fresnel 1e12 hertz +statcoul 1|2.99792458e9 coul +statamp 1|2.99792458e9 amp +statvolt 2.99792458e2 volt +statcoulomb statcoul +statampere statamp +debye 3.33564e-30 coul-m +pulsatance 2 pi/sec +rpm rev/minute +rps rev/sec +kilohm kiloohm +megohm megaohm +siderealyear 365.256360417 day +siderealday 23.934469444 hour +siderealhour 1|24 sidereal day +lunarmonth 29.5305555 day +synodicmonth lunarmonth +siderealmonth 27.32152777 day +tropicalyear year +solaryear year +lunaryear 12 lunarmonth +cran 37.5 brgallon +kip 1000 lbf +frenchfoot 16|15 ft +frenchfeet frenchfoot +toise 6 frenchfeet +sievert 8.4 rontgen +candle 1.02 candela +militarypace 2.5 feet +metre meter +litre liter +gramme gram +iudiptheria 62.8 microgram +iupenicillin .6 microgram +iuinsulin 41.67 microgram +cottonyarncount 2520 ft/pound +linenyarncount 900 ft/pound +worstedyarncount 1680 ft/pound +metricyarncount meter/gram +jewlerspoint 2 milligram -- cgit v1.2.3-56-ge451