  This file documents Gcal, a program for printing calendars.  Gcal
displays a calendar for a month or a year, eternal holiday lists and
fixed date lists, in many ways.  The program correctly omits the dates
that were skipped when the current Gregorian calendar replaced the
earlier Julian calendar.

  Copyright (C) 1994, 1995, 1996, 1997 Thomas Esken

  This is the second edition of the Gcal documentation.

  Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

  Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.

  Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Free Software Foundation.

  Any suggestions, improvements, extensions, bug reports, donations,
proposals for contract work, and so forth are welcome!  Please send
them directly to my eMail address.  If you like my work, I'd appreciate
a postcard from you!

------------------------oOO      \\\_''/      OOo---------------------------
Thomas Esken               O     (/o-o\)     O  eMail: esken@uni-muenster.de
Im Hagenfeld 84                 ((  ^  ))       Phone: +49 251 232585
D-48147 Muenster; Germany    \____) ~ (____/    MotD : 2old2live, 2young2die

Fixed date options
..................

`-v ARGUMENT'
`--date-variable=ARGUMENT'
     Define "global" date variable which is visible in all referenced
     resource files (see Date variables.).  The option ARGUMENT
     must either be a valid single date variable definition or a (`:')
     colon-connected series of definitions.

     A date variable name DVAR consists of a single, case-insensitive
     letter (1), and is trailed in a definition by the assignment
     operator character `=', and the numerical values of month MM (or a
     short, three characters month name, e.g. `Jan', `Feb'...) and day
     DD, this variable has to store (2).

     For example:

          `--date-variable=a=1127:c=a' respectively
          `-v a=1127:c=a'
          stores the 27th November into the global date variable A and
          into the global date variable C.

`--export-date-variables'
     Effects the export of local date variables from one resource file
     to another resource file.  See Date variables, for more
     details.

`-r ARGUMENT'
`--text-variable=ARGUMENT'
     Define "global" text variable which is visible in all referenced
     resource files (see Text variables.).  The option ARGUMENT
     must either be a valid single text variable definition or a (`:')
     colon-connected series of definitions.

     A text variable name TVAR consists of the `$' prefix and a single,
     case-insensitive letter, and is trailed in a definition by the
     assignment operator character `=', and the text, this variable has
     to store.  A global text variable is defined with an *empty*
     contents, in case no text is specified on the right side of the
     assignment operator character.

     For example:

          `--text-variable=$a=foo:$c=$a' respectively
          `-r $a=foo:$c=$a'
          stores the `foo' text to the global text variable $A and to
          the global text variable $C.

     You may depreciate the special meaning of the `:' separator
     character -- in case this character itself is needed -- by placing
     a `\' (backslash) character before it, e.g. `\:'.  If you need the
     `\:' characters themselves, you have to protect the `\'
     (backslash) character by itself, e.g. `\\:'.

     You may depreciate the special meaning of the `$' prefix character
     -- in case this character itself is needed in the text -- by
     placing a `\' (backslash) character before it, e.g. `\$'.  If you
     need the `\$' characters themselves in the text, you have to
     protect the `\' (backslash) character by itself, e.g. `\\$'.

     Each time a `_' (underscore) character is found in ARGUMENT, this
     character is replaced by a real ` ' (space) character.

     You may depreciate the special meaning of the `_' (underscore)
     character -- in case this character itself is needed -- by placing
     a `\' (backslash) character before it, e.g. `\_'.  If you need the
     `\_' themselves, you have to protect the `\' (backslash) character
     by itself, e.g. `\\_'.

`--export-text-variables'
     Effects the export of local text variables from one resource file
     to another resource file.  See Text variables, for more
     details.

`-D ARGUMENT'
`--filter-day=ARGUMENT'
     Displays only those fixed dates, whose date is not excluded by the
     given ARGUMENT.  See Date part of a line, and likewise
     Exclusions without any argument `%?' special texts.
     The ARGUMENT consists of one or more
     characters as used in the exclusion without any argument `%?'
     special text; but without the leading `%' character in each case.

     For example, it is possible to induce Gcal to display only those
     fixed dates from the resource file `demo.rc' for the whole year,
     which are legals holidays, and moreover, Saturdays or Sundays:

          gcal -f demo.rc --year --filter-day=Rv

`-P ARGUMENT'
`--filter-period=ARGUMENT'
     Displays only those fixed dates, whose date is not excluded by the
     given ARGUMENT.  See Date part of a line, and likewise
     Exclusions with date argument `%?[DATE]' special texts.
     The ARGUMENT consists of one or more
     expressions as used in the exclusion with date argument `%?[DATE]'
     special text; but without the leading `%' character in each case.
     You can use more than one of these `%?[DATE]' expressions by
     connecting them with a `,' character.

     For example, it is possible to induce Gcal to display only those
     fixed dates from the resource file `demo.rc' for the whole year,
     which appear within the period of the 17th and the 20th of any
     month, and which appear on the 31st of any month.

          gcal -f demo.rc -y -P i00000017#00000020,i00000031#00000031

`-I PATTERN'
`--filter-text=PATTERN'
     Displays only those fixed dates, whose completely expanded text (3)
     contains the given PATTERN.  See Text part of a line, and
     `%?'... special texts for text replacement.
     The PATTERN is a *regular expression*, as recognized by the Unix
     `ed' line-editor.  See Regular Expressions, for more
     information.

     For example, it is possible to induce Gcal to display all fixed
     dates from the resource file `doctor.rc' for the current month,
     which are defined for dentists or oculists:

          gcal -f doctor.rc --month -I "[dD]entist|[oO]culist"

     Each time a `_' (underscore) character is found in the PATTERN
     argument, this character is replaced by a real ` ' (space)
     character.

     You may depreciate the special meaning of the `_' (underscore)
     character -- in case this character itself is needed -- by placing
     a `\' (backslash) character before it, e.g. `\_'.  If you need the
     `\_' characters themselves, you have to protect the `\'
     (backslash) character by itself, e.g. `\\_'.

`-c|C[-]'
`--today'
`--list-of-fixed-dates[=short|long]'
`--descending-fixed-dates[=short|long]'
     Activate the fixed date function and display fixed date messages,
     if any.

    `-c'
    `--today'
    `--list-of-fixed-dates=short'
          Activate fixed date function (use standard resource file
          implicitly) and list all dates related to the actual system
          date (==today), sorted in ascending order.  If no fixed dates
          related to the current day are found, no fixed date messages
          are displayed and the program is terminated with an error
          code.  See 1.

    `-c-'
    `--descending-fixed-dates=short'
          Activate fixed date function (use standard resource file
          implicitly) and list all dates related to the actual system
          date (==today), sorted in descending order.  If no fixed
          dates related to the current day are found, no fixed date
          messages are displayed and the program is terminated with an
          error code.  See 1.

    `-C'
    `--list-of-fixed-dates=long'
          Activate fixed date function (use standard resource file
          implicitly) and list all dates related to the actual system
          date (==today), sorted in ascending order.  If no fixed dates
          related to the current day are found, an "empty" fixed date
          message only consisting of the date is displayed.

    `-C-'
    `--descending-fixed-dates=long'
          Activate fixed date function (use standard resource file
          implicitly) and list all dates related to the actual system
          date (==today), sorted in descending order.  If no fixed
          dates related to the current day are found, an "empty" fixed
          date message only consisting of the date is displayed.

`-f|F NAME[+...]'
`--resource-file=NAME[+...]'
     Activate fixed date function and use file NAME instead of the
     standard resource file.  Then list all dates, sorted in ascending
     order, which occur in the fixed date period.  If no other fixed
     date period is specified, the actual system date (==today) is used
     for the fixed date period.  If the option letter `f' of the
     short-style option is used and no dates related to the fixed date
     period are found in NAME, no fixed date messages are displayed and
     the program is terminated with an error code.  See 1.
     If the option letter `F' of the short-style option is used
     and no dates related to the fixed date period are found in NAME,
     an "empty" fixed date message only consisting of the date is
     displayed.

     You can use more than one resource file NAME by connecting them
     with a `+' character, e.g.:

          `--resource-file=./foo+xyz+/data/bar+$HOME/.gcalrc' resp.,
          `-f ./foo+xyz+/data/bar+$HOME/.gcalrc'

     respects all files given in the preceding argument using a special
     file search mechanism.  See File searching mechanism,
     for more details.  Use `/dev/null' to avoid the use of the
     standard resource file, useful for creating *empty* fixed date
     lists.

     You may depreciate the special meaning of the `+' separator
     character -- in case this character itself is needed -- by placing
     a `\' (backslash) character before it, e.g. `\+'.  If you need the
     `\+' characters themselves, you have to protect the `\'
     (backslash) character by itself, e.g. `\\+'.

     Each time a `_' (underscore) character is found in NAME, this
     character is replaced by a real ` ' (space) character.

     You may depreciate the special meaning of the `_' (underscore)
     character -- in case this character itself is needed -- by placing
     a `\' (backslash) character before it, e.g. `\_'.  If you need the
     `\_' characters themselves, you have to protect the `\'
     (backslash) character by itself, e.g. `\\_'.

`-# LINE'
`--here=LINE'
     Activate fixed date function and use the LINE argument together
     with the standard resource file respectively additional resource
     files.  The LINE argument has to be a valid logical line as it may
     occur in a Gcal resource file (see Structure of resource file.),
     and is always evaluated at last *after* the processing
     of all resource files, which allows the dealing with references to
     exported local date or text variables.  This option may be given
     multiple and it will be processed exactly in the given order.  All
     dates are listed, sorted in ascending order, which occur in the
     fixed date period.  If no other fixed date period is specified,
     the actual system date (==today) is used for the fixed date
     period.  If no dates related to the fixed date period are found in
     the LINE, no fixed date messages are displayed and the program is
     terminated with an error code.  See 1.

     For example, the call:

          gcal -# "0*d1su#99su.7 ^%:" --here="#include <foo>" -y

     effects the implicit processing of the standard resource file just
     before the further resource file line `0*d1su#99su.7 ^%:' and
     following `#include <foo>' are processed, and that as if these
     lines were a physical part of the standard resource file.

     Each time a `_' (underscore) character is found in LINE, this
     character is replaced by a real ` ' (space) character.

     You may depreciate the special meaning of the `_' (underscore)
     character -- in case this character itself is needed -- by placing
     a `\' (backslash) character before it, e.g. `\_'.  If you need the
     `\_' characters themselves, you have to protect the `\'
     (backslash) character by itself, e.g. `\\_'.

*Please note:*
If the short-style option `-c' and/or its modifiers `t|[w|m|y[+|-]', or
the short-style option `-f' is/are given in *upper-case*, e.g.:

     -C
     -F foo.bar
     -CeT
     -c-aW+
     -CeaxY-
     -c-M

Gcal displays fixed date messages for *every* day of the requested
period.

  The modifiers of a combined/complex/packed short-style fixed date
option must be constructed according to following steps, because Gcal
treats them as positional parameters:

    First step: *Representation-of-text-modifier*
          `a', `A', `B', `e|E', `k', `o', `U', `x', `z', `Z'

    Second step: *Period-of-fixed-dates-modifier*
          `d', `l', `t|T', `w|W|m|M|y|Y[+|-]', `N+|-', `Nd', `Nw',
          `*dN[WWW]', `*wN[WWW]', `@e|t|DVAR[[+|-]N]',
          `@e|t|DVAR[+|-]NWWW', `MMDD', `MMWWWN'

  If you want to operate with the preceding modifiers, an *explicit*
`-c|C[-]' short-style option must be leading on the one hand, e.g.:

     -c-t
     -cw-
     -CZBdekloUzaxA12+

and only *one* period defining fixed date period modifier may be given
(4).

  Or on the other hand, the modifiers must be given as single character
options or composed into a single command line word, and additionally
either the short-style option `-c|C[-]', `-f|F NAME[+...]' or `-# LINE'
(5) must be given like:

     -c -t
     -w- -c
     -a -ABd -e -kloUxz -C12+
     -F foo.bar -dZA -l*d10
     --here="; Comment" -dZAa

  If the modifiers are given as single character options or composed
into a single command line word, and one of the `t|T|[w|W|m|M|y|Y[+|-]]'
modifiers is used (6), it is unnecessary to give a `-c|C[-]'
respectively `-f|F NAME[+...]' short-style option (7) to activate the
fixed date function of Gcal, because it is triggered implicitly by
means of these modifiers / alias names.

  See Coding Scheme, whose tables explain the relations between the
*date part* (YYYY...) of a resource file line and the modifiers, the
short-style option `-c|C[]' -- which is used for enabling the fixed
date feature -- respectively the long-style option
`--period-of-fixed-dates=ARGUMENT' may have, i.e. they point out all
possible correspondences.  This is necessary because Gcal does not
respect all entries found in a resource file if a *fixed date* argument
is given, it respects only those entries which have a definite relation
to the *fixed date* argument to avoid the output of redundant
information!

*Fixed date text modifiers and options:*

`--biorhythm-axis=NUMBER'
     The width of the biorhythm text graphics -- which can be created
     by means of the biorhythm text graphics `%;[DATE]' special text --
     is changed to NUMBER characters for each axis of the bar.  The
     NUMBER argument must be an integer value between 1...100, the
     default number of characters is 20.  If the NUMBER divides 100
     with a remainder, it is internally reduced to the nearest number
     that divides 100 without any remainder.  This means, only the
     numbers 1, 2, 4, 5, 10, 20, 25, 50 and 100 are factually
     respected, so a NUMBER argument of 19 is internally reduced to 10.

     For example:

          $ cat bio.rc
          -| 0*d1#999 %;19620921
          $ gcal -f bio.rc %19961212 -s0 -xw --biorhythm-axis=19
          -|
          -| Thu, Dec <12th>1996: 0- I       P1 E        +0
          -| Fri, Dec  13th 1996: 0-  I   P   1          +0
          -| Sat, Dec  14th 1996: 0-    @   E 0          +0
          -| Sun, Dec  15th 1996: 0-  P  IE   0          +0
          -| Mon, Dec  16th 1996: 0- P  E  I  0          +0
          -| Tue, Dec  17th 1996: 1-P  E     I0          +0
          -| Wed, Dec  18th 1996: 0- @        1          +0

     See Biorhythm `%?[DATE]' special texts, for more
     details.

`--moonimage-lines=NUMBER'
     The height of the moonphase text graphics -- which can be created
     by means of the moonphase text graphics `%:[DATE]' special text --
     is changed to NUMBER lines.  The NUMBER argument must be an integer
     value between 6...30, the default number of lines is 12.

     For example:

          $ gcal -f/dev/null -#0*d1#999_%:__%- %19950308 -x --moon=8
          -|
          -| Wed, Mar < 8th>1995:          (    @@@@@
          -|                          (           @@@@@@@@
          -|                       (               @@@@@@@@@@
          -|                      (                @@@@@@@@@@@
          -|                      (                @@@@@@@@@@@
          -|                       (               @@@@@@@@@@
          -|                        (             @@@@@@@@@@
          -|                            (        @@@@@@@ 41%+

     See Moonphase `%?[DATE]' special texts, for more
     details.

`a'
`--include-resource-file-name'
     Extend fixed date text by the name of the resource file, which the
     fixed date text comes from, e.g.:

          Mon, Jan   1st 1995: (`Eternal holiday list') New Year's day
          Mon, Jan   1st 1995: (.gcalrc) No fixed dates
          ...

`A'
`--alternative-format'
     Instead of using the "standard" list format, e.g.:

          Mon, Jan   1st 1995: New Year's day
          Mon, Jan   1st 1995: No fixed dates
          ...

     Gcal uses the "alternative" list format, e.g.:

          Mon, Jan   1st 1995:
          New Year's day
          No fixed dates
          ...

`B'
`--bypass-shell-command'
     Don't execute shell command `%![ARGUMENT]' special texts, display
     them textually only.  See Shell command `%![ARGUMENT]' special text,
     for more details.

`e'
`--include-holidays=long'
     Enable inclusion of all built-in eternal holiday dates, this
     includes legal holidays and memorial days.

`E'
`--include-holidays=short'
     Enable inclusion of those built-in eternal holiday dates which are
     legal holidays only.

`g[TEXT]'
`--grouping-text[=TEXT]'
     Group fixed dates by day using the TEXT separator.  If TEXT is not
     given, the built-in TEXT (8) is used for grouping, e.g.:

          $ gcal -Cw -cg
          -|
          -| Sun, Nov   6th 1994: Text 1
          -| Sun, Nov   6th 1994: Text 2
          -|
          -| Mon, Nov   7th 1994: Text 3
          -|
          -| Tue, Nov   8th 1994: Text 4
          ...

          $ gcal -Cw -g'-A_user\_defined-~-grouping text-'
          -|
          -| Sun, Nov   6th 1994: Text 1
          -| Sun, Nov   6th 1994: Text 2
          -| -A user_defined-
          -| -grouping text-
          -| Mon, Nov   7th 1994: Text 3
          -| -A user_defined-
          -| -grouping text-
          -| Tue, Nov   8th 1994: Text 4
          ...

     Each time a `~' (tilde) character is found in TEXT, this character
     is replaced by a real `\n' (newline) character.

     You may depreciate the special meaning of the `~' (tilde) character
     -- in case this character itself is needed -- by placing a `\'
     (backslash) character before it, e.g. `\~'.  If you need the `\~'
     characters themselves, you have to protect the `\' (backslash)
     character by itself, e.g. `\\_'.

     Each time a `_' (underscore) character is found in TEXT, this
     character is replaced by a real ` ' (space) character.

     You may depreciate the special meaning of the `_' (underscore)
     character -- in case this character itself is needed -- by placing
     a `\' (backslash) character before it, e.g. `\_'.  If you need the
     `\_' characters themselves, you have to protect the `\'
     (backslash) character by itself, e.g. `\\_'.

`k'
`--include-week-number'
     The leading date of a fixed date message is extended by the
     ISO-8601:1988 week number.

     *Please note:*
     The methods of ISO-8601:1988 are used for detecting week numbers;
     this means a week begins with a Monday, and the first week of a
     year is the one which includes the first Thursday; equivalently,
     the one which includes 4th January.

`o'
`--omit-multiple-date-part'
     Omit displaying the leading date of a fixed date message in case
     more than one message refers to that date (9), e.g.:

          $ gcal -co
          -|
          -| Sun, Nov   6th 1994: Text 1
          -|                      Text 2
          ...

`U'
`--suppress-date-part'
     Suppress displaying the leading date of a fixed date message, e.g.:

          $ gcal -cU
          -|
          -| Text 1
          -| Text 2
          ...

`x'
`--exclude-fixed-dates-list-title'
     Suppress the title text line of the fixed date list.

`z'
`--include-consecutive-number'
     Display consecutive numbers of fixed date messages.

`Z'
`--zero-dates-only'
     Display only those dates, for which fixed dates doesn't exist,
     i.e. all "empty" fixed dates only consisting of the date.

*Fixed date period modifiers and options:*

`--leap-day=february|march'
     The "leap day" (10) is observed in non-leap years.

    `--leap-day=february'
          A fixed date that appears in every year and which is related
          to the leap day, is displayed on the 28th February in
          non-leap years.

    `--leap-day=march'
          A fixed date that appears in every year and which is related
          to the leap day, is displayed on the 1st March in non-leap
          years.

`d'
`--include-today'
     If lists of periods are generated, include the actual date into
     the list.  See `--list-mode', for how to
     create a list of periods.

`l'
`--list-mode'
     Generate a list of periods instead of a single period.

     *Please note:*
     The following examples assumes the actual system date is the *17th
     February of any year* (00000217).

`--period-of-fixed-dates=ARGUMENT'
`Nd'
`*dN'
     Single date of absolute day N == `1...365|366|999' of the actual
     year; the intensity level is the same as the simple `-c' option.
     If the value 999 for N is given, the last day of the year (31st
     December) is assumed.

        * E.g. `gcal -c10d' respectively
          `gcal --period-of-fixed-dates=10d' or `gcal -c*d10'
          respectively `gcal --period-of-fixed-dates=*d10' displays all
          fixed dates which occur on the 10th day of the year.

`lNd'
`l*dN'
     List dates starting yesterday or tomorrow (depending on given day
     number N) and ending at N'th absolute day of the actual year; the
     intensity level is the same as the `-cy' option.

        * E.g. `gcal -cl10d' respectively `gcal -cl*d10' displays a
          list of all fixed dates which start on the 10th day of year
          and end on 16th February.

`N+|-'
     Single date of day *actual day `+/-' N days* of the actual year;
     the intensity level is the same as the simple `-c' option.

        * E.g. `gcal -c10+' displays all fixed dates which occur 10
          days after the 17th February (today).

        * E.g. `gcal -c10-' displays all fixed dates which occur 10
          days before the 17th February (today).

`lN+|-'
     List dates starting yesterday `-' or tomorrow `+' and ending at
     *actual day `+/-' N days* of the actual year; the intensity level
     is the same as the `-cy' option.

        * E.g. `gcal -cl10+' displays a list of all fixed dates which
          start on the 18th February and end 10 days after.

        * E.g. `gcal -cl10-' displays a list of all fixed dates which
          start 10 days before the 16th February and end on the 16th
          February.

`Nw'
     Single dates of week number N == `0|1...52|53|99' of the actual
     year; the intensity level is the same as the `-cw' option.

        * E.g. `gcal -c0w' displays all fixed dates which occur in the
          53rd ISO-week of previous year, in case the previous year has
          a 53rd ISO-week.  If the previous year has 52 ISO-weeks only,
          all fixed dates occurring on the 1st week of the actual year
          are displayed.

        * E.g. `gcal -c6w' displays all fixed dates which occur in the
          6th ISO-week of year.

        * E.g. `gcal -c52w' displays all fixed dates which occur in the
          52nd ISO-week of year.

        * E.g. `gcal -c53w' displays all fixed dates which occur in the
          53rd ISO-week of the the actual year, in case the actual year
          has a 53rd ISO-week.  If the actual year has 52 ISO-weeks
          only, no fixed date messages are displayed and the program is
          terminated with an error code.  See 126.

        * E.g. `gcal -c99w' displays all fixed dates which occur in the
          last ISO-week of the actual year, i.e. either the 52nd or the
          53rd ISO-week.

`lNw'
     List dates starting yesterday or tomorrow (depending on given
     ISO-week number N) and ending at first respectively last day of
     given ISO-week number N == `0|1...52|53|99' of actual year; the
     intensity level is the same as the `-cy' option.

        * E.g. `gcal -cl12w' displays a list of all fixed dates which
          start on the 18th February and end on the last day of the
          12th ISO-week.

        * E.g. `gcal -cl3w' displays a list of all fixed dates which
          start on the first day of the 3rd ISO-week and end on the
          16th February.

`MMDD'
     Single date of day DD in month MM of the actual year; the
     intensity level is the same as the simple `-c' option.

        * E.g. `gcal -c0225' displays all fixed dates which occur on
          the 25th February.

`lMMDD'
     List dates starting yesterday or tomorrow (depending on the value
     given in MMDD) and ending at day DD of month MM of the actual
     year; the intensity level is the same as the `-cy' option.

        * E.g. `gcal -cl0225' displays a list of all fixed dates which
          start on the 18th February and end on the 25th February.

        * E.g. `gcal -cl0109' displays a list of all fixed dates which
          start on the 9th January and end on the 16th February.

`MMWWWN'
     Single date of N'th == `1...5|9' weekday DD|WWW in month MM of the
     actual year; the intensity level is the same as the simple `-c'
     option.

        * E.g. `gcal -c01mon3' displays all fixed dates which occur on
          the 3rd Monday in January.

        * E.g. `gcal -c02fri9' displays all fixed dates which occur on
          the last Friday in February.

`lMMWWWN'
     List dates starting yesterday or tomorrow (depending on the value
     given in MMWWWN) and ending at N'th == `1...5|9' weekday DD of
     month MM of the actual year; the intensity level is the same as
     the `-cy' option.

        * E.g. `gcal -cl01mon3' displays a list of all fixed dates
          which start on the 3rd Monday in January and end on the 16th
          February.

        * E.g. `gcal -cl02fri9' displays a list of all fixed dates
          which start on the 18th February and end on the last Friday
          in February.

`*dNWWW'
     Single date of N'th == `1...51|52|53|99' weekday WWW of the actual
     year; the intensity level is the same as the simple `-c' option.

        * E.g. `gcal -c*d16sun' displays all fixed dates which occur on
          the 16th Sunday of the actual year.

        * E.g. `gcal -c*d52sun' displays all fixed dates which occur on
          the 52nd Sunday of the actual year.  If the actual year has
          no 52nd Sunday, no fixed date messages are displayed and the
          program is terminated with an error code.  See 126.

        * E.g. `gcal -c*d53sun' displays all fixed dates which occur on
          the 53rd Sunday of the actual year.  If the actual year has
          no 53rd Sunday, no fixed date messages are displayed and the
          program is terminated with an error code.  See 126.

        * E.g. `gcal -c*d99sun' displays all fixed dates which occur on
          the last Sunday (11) of the actual year.

`l*dNWWW'
     List dates starting yesterday or tomorrow (depending on the value
     given in N) and ending at N'th == `1...51|52|53|99' weekday WWW of
     the actual year; the intensity level is the same as the `-cy'
     option.

        * E.g. `gcal -cl*d16sun' displays a list of all fixed dates
          which start on the 18th February and end on the 16th Sunday
          of the actual year.

        * E.g. `gcal -cl*d52sun' displays a list of all fixed dates
          which start on the 18th February and end on the 52nd Sunday
          of the actual year.  If the actual year has no 52nd Sunday,
          no fixed date messages are displayed and the program is
          terminated with an error code.  See 126.

        * E.g. `gcal -cl*d53sun' displays a list of all fixed dates
          which start on the 18th February and end on the 53nd Sunday
          of the actual year.  If the actual year has no 53nd Sunday,
          no fixed date messages are displayed and the program is
          terminated with an error code.  See 126.

        * E.g. `gcal -cl*d99sun' displays a list of all fixed dates
          which start on the 18th February and end on the last Sunday
          (12) of the actual year.

`*wN[WWW]'
     Single date of weekday WWW of N'th == `0|1...52|53|99' ISO-week of
     the actual year; the intensity level is the same as the simple
     `-c' option.  If no weekday WWW is given, then Monday is assumed
     for the weekday.

        * E.g. `gcal -c*w0sun' displays all fixed dates which occur on
          Sunday which is located in the 52nd respectively 53rd
          ISO-week of previous year.  In case such a Sunday doesn't
          exist, no fixed date messages are displayed and the program
          is terminated with an error code.  See 126.

        * E.g. `gcal -c*w16sun' displays all fixed dates which occur on
          Sunday of the 16th ISO-week of the actual year.

        * E.g. `gcal -c*w52sun' displays all fixed dates which occur on
          Sunday of the 52nd ISO-week of the actual year.  If the
          actual year has no Sunday of the 52nd ISO-week, no fixed date
          messages are displayed and the program is terminated with an
          error code.  See 126.

        * E.g. `gcal -c*w53sun' displays all fixed dates which occur on
          Sunday of the 53rd ISO-week of the actual year.  If the
          actual year has no Sunday of the 53rd ISO-week, no fixed date
          messages are displayed and the program is terminated with an
          error code.  See 126.

        * E.g. `gcal -c*w99sun' displays all fixed dates which occur on
          Sunday of the last ISO-week (13) of the actual year.

`l*wN[WWW]'
     List dates starting yesterday or tomorrow (depending on the value
     given in N) and ending at weekday WWW of N'th == `0|1...52|53|99'
     ISO-week of the actual year; the intensity level is the same as the
     `-cy' option.  If no weekday WWW is given, then Monday is assumed
     for the weekday.

        * E.g. `gcal -cl*w0sun' displays a list of all fixed dates
          which start on Sunday which is located in the 52nd
          respectively 53rd ISO-week of previous year and end on 16th
          February.  In case such a Sunday doesn't exist, no fixed date
          messages are displayed and the program is terminated with an
          error code.  See 126.

        * E.g. `gcal -cl*w16sun' displays a list of all fixed dates
          which start on the 18th February and end on Sunday of the
          16th ISO-week of actual year.

        * E.g. `gcal -cl*w52sun' displays a list of all fixed dates
          which start on the 18th February and end on Sunday of the
          52nd ISO-week of actual year.  If the actual year has no
          Sunday of the 52nd ISO-week, no fixed date messages are
          displayed and the program is terminated with an error code.
          See 126.

        * E.g. `gcal -cl*w53sun' displays a list of all fixed dates
          which start on the 18th February and end on Sunday of the
          53rd ISO-week of actual year.  If the actual year has no
          Sunday of the 53rd ISO-week, no fixed date messages are
          displayed and the program is terminated with an error code.
          See 126.

        * E.g. `gcal -cl*w99sun' displays a list of all fixed dates
          which start on the 18th February and end on Sunday of the
          last ISO-week (14) of the actual year.

`@e[[+|-]N]'
     Single date of day N relative to the Easter Sunday's date of the
     actual year; the intensity level is the same as the simple `-c'
     option.

        * E.g. `gcal -c@e' displays all fixed dates which occur on the
          Easter Sunday's date.

        * E.g. `gcal -c@e10' respectively `gcal -c@e+10' displays all
          fixed dates which occur 10 days after the Easter Sunday's
          date.

        * E.g. `gcal -c@e-10' displays all fixed dates which occur 10
          days before the Easter Sunday's date.

`l@e[[+|-]N]'
     List dates starting yesterday or tomorrow (depending on the value
     given in N) and ending at N'th day relative to the Easter Sunday's
     date of the actual year; the intensity level is the same as the
     `-cy' option.

        * E.g. `gcal -cl@e' displays a list of all fixed dates which
          start on the 18th February and end on the Easter Sunday's
          date.

        * E.g. `gcal -cl@e10' respectively `gcal -cl@e+10' displays a
          list of all fixed dates which start on the 18th February and
          end 10 days after the Easter Sunday's date.

        * E.g. `gcal -cl@e-10' displays a list of all fixed dates which
          start on the 18th February and end 10 days before the Easter
          Sunday's date.

`@e[+|-]NWWW'
     Single date of N'th weekday WWW relative to the Easter Sunday's
     date of the actual year; the intensity level is the same as the
     simple `-c' option.

        * E.g. `gcal -c@e3fri' respectively `gcal -c@e+3fri' displays
          all fixed dates which occur on the 3rd Friday after the
          Easter Sunday's date.

        * E.g. `gcal -c@e-3fri' displays all fixed dates which occur on
          the 3rd Friday before the Easter Sunday's date.

`l@e[+|-]NWWW'
     List dates starting yesterday or tomorrow (depending on the value
     given in N) and ending at N'th weekday WWW relative to the Easter
     Sunday's date of the actual year; the intensity level is the same
     as the `-cy' option.

        * E.g. `gcal -cl@e3fri' respectively `gcal -cl@e+3fri' displays
          a list of all fixed dates which start on the 18th February
          and end on the 3rd Friday after the Easter Sunday's date.

        * E.g. `gcal -cl@e-3fri' displays a list of all fixed dates
          which start on the 18th February and end on the 3rd Friday
          before the Easter Sunday's date.

`@t[[+|-]N]'
     Single date of day N relative to today's date of the actual year;
     the intensity level is the same as the simple `-c' option.

        * E.g. `gcal -c@t' displays all fixed dates which occur on
          today's date (== `gcal -c').

        * E.g. `gcal -c@t10' respectively `gcal -c@t+10' displays all
          fixed dates which occur 10 days after today's date (== `gcal
          -c10+').

        * E.g. `gcal -c@t-10' displays all fixed dates which occur 10
          days before today's date (== `gcal -c10-').

`l@t[[+|-]N]'
     List dates starting yesterday or tomorrow (depending on the value
     given in N) and ending at N'th day relative to today's date of the
     actual year; the intensity level is the same as the `-cy' option.

        * E.g. `gcal -cl@t' displays nothing.

        * E.g. `gcal -cl@t10' respectively `gcal -cl@t+10' displays a
          list of all fixed dates which start on the 18th February and
          end 10 days after today's date (== `gcal -cl10+').

        * E.g. `gcal -cl@t-10' displays a list of all fixed dates which
          start on the 18th February and end 10 days before today's date
          (== `gcal -cl10-').

`@t[+|-]NWWW'
     Single date of N'th weekday WWW relative to today's date of the
     actual year; the intensity level is the same as the simple `-c'
     option.

        * E.g. `gcal -c@t3fri' respectively `gcal -c@t+3fri' displays
          all fixed dates which occur on the 3rd Friday after today's
          date.

        * E.g. `gcal -c@t-3fri' displays all fixed dates which occur on
          the 3rd Friday before today's date.

`l@t[+|-]NWWW'
     List dates starting yesterday or tomorrow (depending on the value
     given in N) and ending at N'th weekday WWW relative to today's
     date of the actual year; the intensity level is the same as the
     `-cy' option.

        * E.g. `gcal -cl@t3fri' respectively `gcal -cl@t+3fri' displays
          a list of all fixed dates which start on the 18th February
          and end on the 3rd Friday after today's date.

        * E.g. `gcal -cl@t-3fri' displays a list of all fixed dates
          which start on the 18th February and end on the 3rd Friday
          before today's date.

`@DVAR[[+|-]N]'
     Single date of day N relative to date variables date of the actual
     year; the intensity level is the same as the simple `-c' option.

        * E.g. `gcal -v a=0422 -c@a' displays all fixed dates which
          occur on the 22nd April.

        * E.g. `gcal -v a=0422 -c@a10' respectively `gcal -v a=0422
          -c@a+10' displays all fixed dates which occur 10 days after
          the 22nd April.

        * E.g. `gcal -v a=0422 -c@a-10' displays all fixed dates which
          occur 10 days before the 22nd April.

`l@DVAR[[+|-]N]'
     List dates starting yesterday or tomorrow (depending on the value
     given in N) and ending at N'th day relative to date variables date
     of the actual year; the intensity level is the same as the `-cy'
     option.

        * E.g. `gcal -v a=0422 -cl@a' displays a list of all fixed
          dates which start on the 18th February and end on the 22nd
          April.

        * E.g. `gcal -v a=0422 -cl@a10' respectively `gcal -v a=0422
          -cl@a+10' displays a list of all fixed dates which start on
          the 18th February and end 10 days after the 22nd April.

        * E.g. `gcal -v a=0422 -cl@a-10' displays a list of all fixed
          dates which start on the 18th February and end 10 days before
          the 22nd April.

`@DVAR[+|-]NWWW'
     Singe date of N'th weekday WWW relative to date variables date of
     the actual year; the intensity level is the same as the simple `-c'
     option.

        * E.g. `gcal -v a=0122 -c@a2sat' respectively `gcal -v a=0122
          -c@a+2sat' displays all fixed dates which occur on the 2nd
          Saturday after the 22nd January.

        * E.g. `gcal -v a=0122 -c@a-2sat' displays all fixed dates
          which occur on the 2nd Saturday before the 22nd January.

`l@DVAR[+|-]NWWW'
     List dates starting yesterday or tomorrow (depending on the value
     given in N) and ending at N'th weekday WWW relative to date
     variables date of the actual year; the intensity level is the same
     as the `-cy' option.

        * E.g. `gcal -v a=0122 -cl@a2sat' respectively `gcal -v a=0122
          -cl@a+2sat' displays a list of all fixed dates which start on
          the 2nd Saturday after the 22nd January and end on the 16th
          February.

        * E.g. `gcal -v a=0122 -cl@a-2sat' displays a list of all fixed
          dates which start on the 2nd Saturday before the 22nd January
          and end on the 16th February.

`t|T'
`--tomorrow' long-style option
     List dates related to tomorrow.

        * E.g. `gcal -ct' displays all fixed dates which occur on the
          18th February (tomorrow).

        * E.g. `gcal -cdt' displays all fixed dates which occur on the
          17th February (today) and on the 18th February (tomorrow).

`w|W[+|-]'
`--week' long-style option
`--end-of-week' long-style option
`--start-of-week' long-style option
     Display dates related to the week.
     See `--starting-day[=ARGUMENT]'.

        * `w' or `--week' long-style option
          List dates between *starting day* of current week and last
          day of current week

             - E.g. `gcal -cw' displays all fixed dates which occur in
               the whole week the 17th February is part of.

        * `w+' or `--end-of-week' long-style option
          List dates between day after current day of current week and
          last day of current week.

             - E.g. `gcal -cw+' displays all fixed dates which start on
               the 18th February (tomorrow) and end on the last day of
               the week.

             - E.g. `gcal -cdw+' displays all fixed dates which start
               on the 17th February (today) and end on the last day of
               the week.

        * `w-' or `--start-of-week' long-style option
          List dates between *starting day* of current week and day
          before current day of current week

             - E.g. `gcal -cw-' displays all fixed dates which start on
               the first day of the week and end on the 16th February
               (yesterday).

             - E.g. `gcal -cdw-' displays all fixed dates which start
               on the first day of the week and end on the 17th
               February (today).

`m|M[+|-]'
`--month' long-style option
`--end-of-month' long-style option
`--start-of-month' long-style option
     Display dates related to the month.

        * `m' or `--month' long-style option
          List dates between first day of current month and last day of
          current month.

             - E.g. `gcal -cm' displays all fixed dates which occur in
               the whole month of February.

        * `m+' or `--end-of-month' long-style option
          List dates between day after current day of current month and
          last day of current month.

             - E.g. `gcal -cm+' displays all fixed dates which start on
               the 18th February (tomorrow) and end on the last day of
               the month February.

             - E.g. `gcal -cdm+' displays all fixed dates which start
               on the 17th February (today) and end on the last day of
               the month February.

        * `m-' or `--start-of-month' long-style option
          List dates between first day of current month and day before
          current day of current month.

             - E.g. `gcal -cm-' displays all fixed dates which start on
               the first day of the month February and end on the 16th
               February (yesterday).

             - E.g. `gcal -cdm-' displays all fixed dates which start
               on the first day of the month February and end on the
               17th February (today).

`y|Y[+|-]'
`--year' long-style option
`--end-of-year' long-style option
`--start-of-year' long-style option
     Display dates related to the year.

        * `y' or `--year' long-style option
          List dates between first day of current year and last day of
          current year.

             - E.g. `gcal -cy' displays all fixed dates which occur in
               the whole year.

        * `y+' or `--end-of-year' long-style option
          List dates between day after current day of current year and
          last day of current year.

             - E.g. `gcal -cy+' displays all fixed dates which start on
               the 18th February (tomorrow) and end on the last day of
               the year.

             - E.g. `gcal -cdy+' displays all fixed dates which start
               on the 17th February (today) and end on the last day of
               the year.

        * `y-' or `--start-of-year' long-style option
          List dates between first day of current year and day before
          current day of current year.

             - E.g. `gcal -cy-' displays all fixed dates which start on
               the first day of the year and end on the 16th February
               (yesterday).

             - E.g. `gcal -cdy-' displays all fixed dates which start
               on the first day of the year and end on the 17th
               February (today).

  ---------- Footnotes ----------

  (1)  Except the date variable E that is internally reserved for the
Easter Sunday's date, so it cannot be assigned or operated therefore.
And except the date variable T that is internally reserved for today's
date, so it likewise cannot be assigned or operated.

  (2)  Or another global date variable name, but *no* date given in the
`MMWWWN', `e|t|DVAR[+|-]N[WWW]' or the `*d|wN[WWW]' format.

  (3)  Except Gcal's line break up characters `~' and `^', so you have
to use `\~' and `\\^' in the PATTERN argument if you want to search
texts which contain these characters.

  (4)  This means, exclusive the `--include-today' option respectively
`d' modifier, the `--list-mode' option respectively `l' modifier, and
the `--leap-day=february|march' option.

  (5)  Respectively their according long-style options.

  (6)  Or their according alias names like `--today', `--tomorrow'...

  (7)  Or their according long-style options.

  (8)  `RC_GROUP_SEP' "" == empty line only.

  (9)  Only if the `--alternative-format' option respectively the `A'
modifier is not given.

  (10)  The 29th February.

  (11)  That's either the 51st, 52nd or 53rd Sunday.

  (12)  That's either the 51st, 52nd or 53rd Sunday.

  (13)  That's either the 52nd or 53rd ISO-week.

  (14)  That's either the 52nd or 53rd ISO-week.

Response file
-------------

  If a `@FILE' option is given in the command line, a "response file"
by the name of FILE will be used, i.e. options and commands are
preloaded from that file.  A response FILE may contain options and
commands -- which are preloaded by Gcal --, but *no* reference to
further response files.  If such references to further response files
are found, they are ignored.  See `--response-file=NAME',
for hints how to generate a response file automatically.

  The searching scheme for a response file is the same as that for
resource files, except *no* standard response file is respected.  See
File searching mechanism, for more details.  Multiple
response files may be given in the command line when Gcal is started,
and they are processed exactly in that order as given, i.e. strictly
sequential.

  Each option and command must be on a single line, i.e. separated by a
real `\n' (newline) character.  A line beginning with a `;' (semicolon)
character in the response file is treated as a remark and will not be
used by Gcal (see Comment line.).

  Options must be defined before commands.  If a response file contains
any commands, then all further arguments after the `@FILE' option of
the command line are ignored.

For example:

  1. Contents of response file `file':

          Line     Text
          1        -j
          2        -Cw
          EOF

          $ gcal -i -b 3 @file -s 3 1994

          ==> gcal -i -b 3 -j -Cw -s 3 1994

  2. Contents of response file `file':

          Line     Text
          1        -j
          2        -Cw
          3        may 1992
          EOF

          $ gcal -i -b 3 @file -s 3 1994

          ==> gcal -i -b 3 -j -Cw may

  3. Contents of response file `file':

          Line     Text
          1        -j
          2        -Cw
          3        may
          4        1992
          EOF

          $ gcal -i -b 3 @file -s 3 1994

          ==> gcal -i -b 3 -j -Cw may 1992