Commit Graph

66 Commits

Author SHA1 Message Date
Stefan Eßer
0357fa2632 Restrict locale settings to the file they occur in
This prevents LANG= in an included file from affecting the interpretation
of month and day names in the including file.

Make the internal pre-processor accept white space between the "#" at
the start of the line and the keyword for better compatibility with cpp.

Add support for the cpp keywords #warning and #error.

MFC after:	3 days
2020-11-05 08:58:21 +00:00
Stefan Eßer
2ceb17a8be Add regression tests for conditions and comments
Fix one case where #else was not corerctly processed and simplify the
conditions logic.

Fix parsing of day and month names in the locale specified in the calendar
file. The previous version would expect those names to match the locale of
the user.

Mention that comments are now correctly processed and that // is supported
in addition to /* ... */.

MFC after:	3 days
2020-11-04 22:29:01 +00:00
Stefan Eßer
321b3540eb Update man-page to document changes made to the calendar program.
MFC after:	3 days
2020-11-03 22:13:16 +00:00
Stefan Eßer
19b5c30754 Add support for nested conditionals
The previous behavior was to support nested #ifdef and #ifndef, but to
return to unconditional parsing after the next #endif, independently of
the number of previously parsed conditions.

E.g. after "#ifdef A / #ifdef B / #endif" the following lines were
unconditially parsed again, independently of A and/or B being defined.

The new behavior is to count the level of false conditions and to only
restart parsing of calendar entries when the corresponding number of
#endif tokens have been seen.

In addition to the above, an #else directive has been added, to toggle
between parsing and ignoring of the following lines.

No validation of the correct use of the condition directives is made.
#endif without prior #define or #ifndef is ignored and #else toggles
between parsing and skipping of entries.

The MFC period has been set to 1 month to allow for a review of the
changes and for a discussion, whether these modifications should not
be merged at all.

No correct input file is parsed differently than before, but if calendar
data files are published that use these new features, those data files
will not parse correctly on prior versions of this program.

MFC after:	1 month
2020-10-28 14:48:58 +00:00
Stefan Eßer
2939897921 Fix parsing of #ifdef in calendar files
There was code to process an #ifndef tokens, but none for #ifdef.
The #ifdef token was mentioned as unsupported in the BUGS section,
but no reason was given and I do not see why it should stay omitted.

Misleading information in The BUGS section of the man-page regarding
the maximum number of #define and #include statements supported has
been removed. These limits might have applied to a prior version of
this program, but do not seem to apply to the current implementation.

I have not tried to test for the existence of the limits, but the
include file processing just recursively calls the parser (without
counting the recursion depth) and the stringlist functions do not
impose a limit on the number of entries.

Reported by:	jhs@berklix.com
MFC after:	3 days
2020-10-28 13:06:39 +00:00
Warner Losh
d20d655018 calendar: remove all datafiles except freebsd one
Move all the data files for the calendar(1) program, except
calendar.freebsd to the calendar-data package. When a file
can't be found, and /usr/local/share/calendar doesn't exist
provide a helpful hint to install this package.

Reviewed by: se@
Differential Revision:  https://reviews.freebsd.org/D26926
2020-10-26 03:26:18 +00:00
Mateusz Piotrowski
50f7cdf21c calendar.1: Fix locale of the month in Dd ;) 2020-10-25 16:01:03 +00:00
Stefan Eßer
c77b04884c Udpate calendar man-page to mention the search path added in r366962.
Calendar files in /usr/lcoal/share/calendar take precedence over files in
the base system. They can be provided by a port or package, but since such
a port has not been committed, yet, no specific port name is suggested.

In fact, multiple ports could exist (e.g. per locale) without conflicting
with each other.
2020-10-23 10:00:56 +00:00
Mateusz Piotrowski
c9370e5cec Bump manual page date after 366243
While here, address mandoc warnings.
2020-09-29 10:07:46 +00:00
Greg Lehey
314c5b3583 Document the fact (bug?) that the -a option will normally process
root's calendar files three times, once each for root, toor and
daemon.

This relates to bug 246943, but does not solve it.  See discussion in
bug report for more details.

PR:		246943
Reported by:	wcarson.bugzilla@disillusion.net
2020-09-29 05:49:45 +00:00
Conrad Meyer
fd1efedc79 Add extremely useful calendar(1) application to FreeBSD
It does extremely useful things like execute sendmail and spew dubiously
accurate factoids.

From the feedback, it seems like it is an essential utility in a modern unix
and not at all a useless bikeshed.  How do those Linux people live without it?
Reverts r358561.
2020-03-03 00:20:08 +00:00
Conrad Meyer
3c565de33f Fix typo in r278616
FreeBSD isn't an encyclopedia.
2020-03-02 23:37:47 +00:00
Warner Losh
fbbd9655e5 Renumber copyright clause 4
Renumber cluase 4 to 3, per what everybody else did when BSD granted
them permission to remove clause 3. My insistance on keeping the same
numbering for legal reasons is too pedantic, so give up on that point.

Submitted by:	Jan Schaumann <jschauma@stevens.edu>
Pull Request:	https://github.com/freebsd/freebsd/pull/96
2017-02-28 23:42:47 +00:00
Baptiste Daroussin
b6b79081e8 Remove reference cpp(1) which is not used anymore 2016-07-24 11:05:23 +00:00
Joel Dahl
89898f63c2 mdoc: remove EOL whitespace.
Approved by:	re (blanket)
2013-10-04 16:44:24 +00:00
Diane Bruce
5d32a8713c - calendar uses cpp internally, this diff removes this usage and
substitutes a limited subset cpp processor internally.

PR:		src/178463
Approved by:	re (gjb)
2013-09-19 20:17:50 +00:00
Jaakko Heinonen
67e09bb94c Correct the path.
PR:		176256
Submitted by:	jhs
2013-04-06 13:42:37 +00:00
Joel Dahl
aee53c332e Remove contractions. 2012-10-07 20:01:41 +00:00
Glen Barber
2fccbf04cc General mdoc(7) and typo fixes.
PR:		167696
Submitted by:	Nobuyuki Koganemaru (kogane!jp.freebsd.org)
MFC after:	3 days
2012-05-10 02:07:00 +00:00
Eitan Adler
50d675f7a9 Remove trailing whitespace per mdoc lint warning
Disussed with:	gavin
No objection from:	doc
Approved by:	joel
MFC after:	3 days
2012-03-29 05:02:12 +00:00
Joel Dahl
126b754db4 Remove superfluous paragraph macro. 2012-03-25 09:19:25 +00:00
Greg Lehey
415f031163 Tidy up command line processing:
- Add ? option to optstring.
  - Sort options alphabetically.
  - Vertical space.

Tidy up usage() function.

Bring man page in sync with source.

Ensure that debug code is only executed with the -d option.

Submitted by: Christiane Yeardley
2011-11-09 01:40:46 +00:00
Sergey A. Osokin
7a51c53b49 Fix typo: March -> September. 2011-01-05 21:17:14 +00:00
Sergey A. Osokin
f6db469642 Fix typo (Pashka -> Paskha). 2010-12-25 11:52:04 +00:00
Edwin Groothuis
9a865043bb Update manual with regarding to the status of calendars/calendar.judaic. 2010-10-14 21:53:25 +00:00
Edwin Groothuis
c31776f0f8 For calendars which don't match the solar-based Gregorian calendar,
be able to specify a year string in an entry.
2010-08-30 22:45:32 +00:00
Edwin Groothuis
bb06482c77 On request of joel@:
- Remove the 3rd clause of the UC Berkeley copyrighted files.
- For the files added copyrighted by me, move the "All rights
  reserved" to the next line.
2010-03-30 06:42:01 +00:00
Edwin Groothuis
2b84020d5c Long awaited update to the calendar system:
- Repeating events which span multiple years (because of -A, -B or
  just the three days before the end of the year).

- Support for lunar events (full moon, new moon) and solar events
  (equinox and solstice, chinese new year). Because of this, the
  options -U (UTC offset) and -l (longitude) are available to
  compensate if reality doesn't match the calculated values.

MFC after:	1 month
2010-03-29 06:49:20 +00:00
Ruslan Ermilov
0227791b40 Expand *n't contractions. 2005-02-13 22:25:33 +00:00
Ruslan Ermilov
6c7216df78 Sort sections. 2005-01-18 13:43:56 +00:00
Ruslan Ermilov
557b7fa148 Deal with double whitespace. 2004-07-03 00:24:45 +00:00
Ruslan Ermilov
6a3e8b0adc Mechanically kill hard sentence breaks. 2004-07-02 22:22:35 +00:00
Colin Percival
734938becc From the list of calendars, remove some duplicate entries which were added
as a result of mis-sorting.

PR Submitter wanted to see a sorted list of non-national holidays followed
by a sorted list of national holidays; I'm not going to do this, because I
don't think we want to get into the "what is a nation?" debate.

PR:		docs/64848
Submitted by:	Ulrich Spoerlein <q@uni.de> (approximately)
MFC after:	3 days
2004-03-30 18:28:36 +00:00
Greg Lehey
c1f0b6315e Add description of a number of "default" files that have been added
over the last few years.
2002-11-19 00:30:38 +00:00
Ruslan Ermilov
eaa529121a mdoc(7) police: Forgot to bump .Dd. 2002-08-14 11:32:32 +00:00
Ruslan Ermilov
3791250688 mdoc(7) police:
Added -F and -W options to the SYNOPSIS.
Fixed options DESCRIPTION to match style(9).
Document the default for -F.
2002-08-14 11:31:37 +00:00
Tom Rhodes
a38d3fb35e Revert previous delta for cut(1) and calendar(1) as they were not applied
correctly.  My fault, forgot that -current was checked out.
2002-07-23 15:09:56 +00:00
Tom Rhodes
623bc624b0 MFC: Fix some grammar, greater reduce diffs to HEAD 2002-07-22 21:14:16 +00:00
Greg Lehey
b20a21a6c1 Add two new options:
-W is like -A (number of days in the future to consider, but also
   specifies that we don't want special treatment at weekends.
-F changes our notion of "Friday" (the day before the weekend).

Arguably, calendar(1) is broken to have special treatment of weekends
by default, but this method maintains POLA.
2002-06-13 21:20:56 +00:00
David Malone
df374705d2 Add a French calendar.
PR:		32265
Submitted by:	Thierry Thomas <thierry@pompo.net>
MFC after:	1 week
2002-04-28 23:22:13 +00:00
Philippe Charnier
6f9af3e6ec Dot terminate a sentence. Rearrange to not use .Nm at the beginning
of a sentence.
2002-04-21 13:02:20 +00:00
Philippe Charnier
e8937ba009 Use `The .Nm utility' 2002-04-20 12:18:28 +00:00
Ruslan Ermilov
0eebeb0071 mdoc(7) police: s/FreeBSD/.Fx/, bump document date. 2001-10-01 13:32:46 +00:00
Greg Lehey
24e7f58b03 Add description for calendar.freebsd. 2001-10-01 02:35:52 +00:00
Dima Dorfman
f247324df7 Remove whitespace at EOL. 2001-07-15 08:06:20 +00:00
Dima Dorfman
70d51341bf mdoc(7) police: remove extraneous .Pp before and/or after .Sh. 2001-07-09 09:54:33 +00:00
Ben Smithurst
892fc9c643 Minor grammar nit.
PR:		23742
Submitted by:	Rich Morin <rdm@cfcl.com>
2001-01-16 22:41:25 +00:00
Ruslan Ermilov
f4ddfb3865 Prepare for mdoc(7)NG. 2000-12-27 16:52:31 +00:00
Ruslan Ermilov
8fe908ef0c mdoc(7) police: use the new features of the Nm macro. 2000-11-20 19:21:22 +00:00
Alexander Langer
d181bf8003 List the options in alphabetic order.
PR:		21734
Submitted by:	Johan Karlsson <k@numeri.campus.luth.se>
2000-10-06 12:07:46 +00:00