Dies ist gcal.info, hergestellt von Makeinfo Version 4.0 aus gcal.texi.

INFO-DIR-SECTION GNU Pakete
START-INFO-DIR-ENTRY
* Gcal: (gcal).                        GNU Kalenderprogramm.
* Tcal: (gcal)Aufruf von tcal.         Gcal mit morgigem Datum aufrufen.
* Txt2gcal: (gcal)Aufruf von txt2gcal. Kalendertext zu Ressourcendatei wandeln.
* Gcal2txt: (gcal)Aufruf von gcal2txt. Kalenderressource zu Textdatei wandeln.
END-INFO-DIR-ENTRY

Diese Datei beschreibt Gcal, ein Programm um Kalender zu berechnen und
auszugeben.

Copyright (c) 1994-1997, 2000 Thomas Esken

Diese Ausgabe ist für Gcal Version 3.00.

Hiermit wird die Erlaubnis erteilt, wortgetreue Kopien dieses Handbuchs
zu erstellen und zu vertreiben, sofern alle gemachten Kopien mit dem
Copyrightvermerk und diesem Genehmigungsvermerk ausgestattet sind und
vorgenannte Vermerke erhalten bleiben.

Hiermit wird die Erlaubnis erteilt, veränderte Kopien dieses Handbuchs
wie unter den Bedingungen für wortgetreue Kopien zu erstellen und zu
vertreiben, sofern die ausgeführten Arbeiten in Ableitung und Gesamtheit
innerhalb der Bestimmungen eines Genehmigungsvermerks liegen und zudem
mit diesem ausgestattet sind, welcher mit diesem hier identisch ist.

Hiermit wird die Erlaubnis erteilt, wie unter den vorgenannten
Bedingungen für veränderte Versionen Übersetzungen dieses Handbuchs in
eine andere Sprache zu erstellen und zu vertreiben, mit der Ausnahme,
daß dieser Genehmigungsvermerk in einer Übersetzung angegeben sein
darf, welche von der Free Software Foundation gebilligt wird.

Jedwede Vorschläge, Verbesserungen, Erweiterungen, Fehlerberichte, Geld-
und Sachspenden, Programmieraufträge usw. sind stets willkommen.  Bitte
senden Sie diese direkt an meine eMail Adresse <esken@gmx.net>.  Wenn
Sie dieses Werkzeug mögen, so würde ich mich sehr über eine Postkarte
von Ihnen freuen!

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


File: gcal.info,  Node: Termin Optionen-Footnotes,  Up: Termin Optionen

(1) Groß- bzw. Kleinbuchstaben werden nicht unterschieden.  Nicht
zuweisbar bzw. inoperabel ist die Datumvariable E, welche intern für
das Datum des Ostersonntags reserviert ist.  Ebenfalls nicht zuweisbar
bzw. inoperabel ist die Datumvariable T, welche intern für das heutige
Datum reserviert ist.

(2) Oder dem Namen einer anderen, bereits definierten, globalen
Datumvariablen, aber *keiner* Datumangabe im `MMWWWN',
`e|t|DVAR[+|-]N[WWW]' oder `*d|wN[WWW]' Datumformat.

(3) Groß- bzw. Kleinbuchstaben werden nicht unterschieden.

(4) Refraktion oder Strahlenbrechung ist ein durch die Erdatmosphäre
verursachtes optisches Phänomen, daß zu einer scheinbaren Hebung des
Gestirnsortes über dem Horizont führt.  Der Betrag der Refraktion nimmt
bei steigendem Luftdruck und sinkender Temperatur zu und umgekehrt.

(5) Richtig, die `--time-offset' Option weist eine mehrfache
Funktionalität auf, die vom Kontext ihrer Verwendung abhängig ist!

(6) Ausgenommen Gcal's Zeilenumbruchzeichen `~' und `^', so daß `\~'
und `\\^' im SUCHMUSTER Argument benutzt werden muß, falls nach Texten
gesucht werden soll, welche diese Zeichen enthalten.

(7) Im Englischen mit `regular expression' bezeichnet.

(8) Davon ausgenommen sind die `--include-today' Option bzw. der `d'
Modifizierer, die `--list-mode' Option oder der `l' Modifizierer, und
die `--leap-day=february|march' Option.

(9) Bzw. deren entsprechende Langoptionen.

(10) Oder deren entsprechende Aliasnamen, wie `--today',
`--tomorrow'....

(11) Oder deren entsprechende Langoptionen.

(12) `RC_GROUP_SEP' "" == nur Leerzeile.

(13) Nur falls die `--alternative-format' Option oder der `A'
Modifizierer nicht angegeben wurde.

(14) Der 29'te Februar.

(15) Das ist entweder der 51'te, 52'te oder 53'te Sonntag.

(16) Das ist entweder der 51'te, 52'te oder 53'te Sonntag.

(17) Das ist entweder der Sonntag der 51'ten, 52'ten oder 53'ten
Kalenderwoche.

(18) Das ist entweder der Sonntag der 51'ten, 52'ten oder 53'ten
Kalenderwoche.


File: gcal.info,  Node: Antwortdatei,  Next: Datummodifizierer,  Prev: Optionen,  Up: Kommandozeilenargumente

Antwortdatei
------------

Wenn ein `@DATEI' Kommandozeilenargument vorgefunden wird, so wird eine
"Antwortdatei" namens DATEI benutzt, d.h. Optionen und Kommandos werden
aus dieser Datei vorgeladen.  Eine Antwortdatei `@DATEI' darf Optionen
und Kommandos enthalten, aber *keine* Verweise auf weitere
Antwortdateien.  Werden solche Verweise auf weitere Antwortdateien
vorgefunden, so werden diese ignoriert.  *Note Globale Option
`--response-file=DATEINAME': x-response-file, für Hinweise, wie eine
Antwortdatei automatisch erzeugt werden kann.

Das Suchschema für eine Antwortdatei ist gleich dem Suchschema für
Ressourcendateien, mit der Ausnahme, daß *keine* Standard-Antwortdatei
berücksichtigt wird.  *Note Datei-Suchmechanismus:
x-Datei-Suchmechanismus, für weitere Details.  Es dürfen mehrere
Antwortdateien beim Aufruf von Gcal angegeben werden.  Diese werden in
genau der Reihenfolge abgearbeitet, in der sie in der Kommandozeile
angegeben sind, also streng sequentiell.

Jede Option und jedes Kommando muß auf einer einzelnen Zeile angegeben
sein, d.h. durch ein echtes `\n' (Newline) Zeichen getrennt werden.
Eine Zeile der Antwortdatei, die mit einem `;' (Semikolon) Zeichen
beginnt, ist ein Kommentar und wird von Gcal vollständig ignoriert
(*note Zeile kommentieren::).

Optionen müssen vor Kommandos definiert werden.  Wenn eine Antwortdatei
Kommandos enthält, so werden alle weiteren Argumente, die nach `@DATEI'
in der Kommandozeile angegeben sind, ignoriert.

Zum Beispiel:

  1. Inhalt von Antwortdatei `Datei':

          Zeile    Text
          1        -j
          2        -Cw
          EOF
          
          $ gcal -i -b 3 @Datei -s 3 1994
          
          ==> gcal -i -b 3 -j -Cw -s 3 1994

  2. Inhalt von Antwortdatei `Datei':

          Zeile    Text
          1        -j
          2        -Cw
          3        mai 1992
          EOF
          
          $ gcal -i -b 3 @Datei -s 3 1994
          
          ==> gcal -i -b 3 -j -Cw mai

  3. Inhalt von Antwortdatei `Datei':

          Zeile    Text
          1        -j
          2        -Cw
          3        mai
          4        1992
          EOF
          
          $ gcal -i -b 3 @Datei -s 3 1994
          
          ==> gcal -i -b 3 -j -Cw mai 1992


File: gcal.info,  Node: Datummodifizierer,  Next: Kommandos,  Prev: Antwortdatei,  Up: Kommandozeilenargumente

Datummodifizierer
-----------------

Es ist möglich, dasjenige Datum anstelle dem aktuellen Systemdatum zu
verwenden, welches mit dem `%DATUM' Kommandozeilenargument definiert
wurde.  Das bedeutet, daß Termine für *jedwedes* Jahr geprüft werden
können, und diese so berücksichtigt werden, als ob sie Termine wären,
die sich rein auf das aktuelle Jahr beziehen.

Das Datum muß in einem dieser Formate angegeben werden:

   * `JJJJ[MM[TT|WWWN]]'

   * `JJJJ*d|wN[WWW]'

   * `JJJJ@e|t|DVAR[[+|-]N[WWW]]'

   * `MONATSNAME[TT]'

   * `WOCHENTAGSNAME[N]'

   * TT

Hierzu einige Beispiele:

     *Bitte beachten:*
     In den folgenden Beispielen wird angenommen, daß das aktuelle
     Systemdatum *Mittwoch, der 17'te Februar 1993* (19930217) ist,
     Wochen Montags anfangen, und ISO-Wochennummern verwendet werden!

Das `JJJJ[MM[TT|WWWN]]' Format:
        * `gcal %1994' (== JJJJ)
          Das aktuelle Datum wird auf den 17'ten Februar 1994 gesetzt
          => 19940217.

        * `gcal %1994Mär'

        * `gcal %19943'

        * `gcal %199403' (== JJJJMM)
          Das aktuelle Datum wird auf das Datum 17'ter März 1994
          gesetzt => 19940317.

        * `gcal %1994Mär3'

        * `gcal %1994033'

        * `gcal %19940303' (== JJJJMMTT)
          Das aktuelle Datum wird auf das Datum 3'ter März 1994 gesetzt
          => 19940303.

        * `gcal %1994MärMit3'

        * `gcal %199403mi3' (== JJJJMMWWWN)
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch im März
          1994 gesetzt (N == `1...5|9') => 19940316.

        * `gcal %0'

        * `gcal %00'

        * `gcal %000'

        * `gcal %0000' (== JJJJ)
          Das aktuelle Datum bleibt unverändert => 19930217.

        * `gcal %0000Mär'

        * `gcal %00003'

        * `gcal %000003' (== JJJJMM)
          Das aktuelle Datum wird auf das Datum 17'ter März 1993
          gesetzt => 19930317.

        * `gcal %0000Mär3'

        * `gcal %0000033'

        * `gcal %00000303' (== JJJJMMTT)
          Das aktuelle Datum wird auf das Datum 3'ter März 1993 gesetzt
          => 19930303.

        * `gcal %0000MärMit3'

        * `gcal %000003mi3' (== JJJJMMWWWN)
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch im März
          1993 gesetzt (N == `1...5|9') => 19930317.

Das `JJJJ*d|wN[WWW]' Format:
        * `gcal %1994*d10' (== `JJJJ*dN')
          Das aktuelle Datum wird auf das Datum des 10'ten absoluten
          Tages 1994 gesetzt (N == `1...365|366|999') => 19940110.

        * `gcal %1994*d10son' (== `JJJJ*dNWWW')
          Das aktuelle Datum wird auf das Datum des 10'ten Sonntags 1994
          gesetzt (N == `1...51|52|53|99') => 19940306.

        * `gcal %0*d10' (== `JJJJ*dN')
          Das aktuelle Datum wird auf das Datum des 10'ten absoluten
          Tages 1993 gesetzt => 19930110.

        * `gcal %0*d10son' (== `JJJJ*dNWWW')
          Das aktuelle Datum wird auf das Datum des 10'ten Sonntags 1993
          gesetzt => 19930307.

        * `gcal %1994*w10' (== `JJJJ*wN')
          Das aktuelle Datum wird auf das Datum des Montags der 10'ten
          Kalenderwoche 1994 gesetzt (N == `0|1...52|53|99')
          => 19940307.

        * `gcal %1994*w10son' (== `JJJJ*wNWWW')
          Das aktuelle Datum wird auf das Datum des Sonntags der 10'ten
          Kalenderwoche 1994 gesetzt => 19940313.

        * `gcal %0*w10' (== `JJJJ*wN')
          Das aktuelle Datum wird auf das Datum des Montags der 10'ten
          Kalenderwoche 1993 gesetzt => 19930308.

        * `gcal %0*w10son' (== `JJJJ*wNWWW')
          Das aktuelle Datum wird auf das Datum des Sonntags der 10'ten
          Kalenderwoche 1993 gesetzt => 19930314.

Das `JJJJ@e|t|DVAR[[+|-]N[WWW]]' Format:
        * `gcal %1994@e' (== `JJJJ@e')
          Das aktuelle Datum wird auf das Datum des Ostersonntags 1994
          gesetzt => 19940403.

        * `gcal %1994@e10'

        * `gcal %1994@e+10' (== `JJJJ@e[+]N')
          Das aktuelle Datum wird auf das Datum 10 Tage nach
          Ostersonntag 1994 gesetzt => 19940413.

        * `gcal %1994@e-10' (== `JJJJ@e-N')
          Das aktuelle Datum wird auf das Datum 10 Tage vor
          Ostersonntag 1994 gesetzt => 19940324.

        * `gcal %0@e'

        * `gcal %00@e'

        * `gcal %000@e'

        * `gcal %0000@e' (== `JJJJ@e')
          Das aktuelle Datum wird auf das Datum des Ostersonntags 1993
          gesetzt => 19930411.

        * `gcal %0@e10'

        * `gcal %0@e+10' (== `JJJJ@e[+]N')
          Das aktuelle Datum wird auf das Datum 10 Tage nach
          Ostersonntag 1993 gesetzt => 19930421.

        * `gcal %0@e-10' (== `JJJJ@e-N')
          Das aktuelle Datum wird auf das Datum 10 Tage vor
          Ostersonntag 1993 gesetzt => 19930401.

        * `gcal %1994@e3Mi'

        * `gcal %1994@e+3Mi' (== `JJJJ@e[+]NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch nach
          Ostersonntag 1994 gesetzt => 19940420.

        * `gcal %1994@e-3mi' (== `JJJJ@e-NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor
          Ostersonntag 1994 gesetzt => 19940316.

        * `gcal %0@e3mi'

        * `gcal %0@e+3mi' (== `JJJJ@e[+]NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch nach
          Ostersonntag 1993 gesetzt => 19930428.

        * `gcal %0@e-3mi' (== `JJJJ@e-NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor
          Ostersonntag 1993 gesetzt => 19930324.

        * `gcal %1994@t' (== `JJJJ@t')
          Das aktuelle Datum wird auf das heutige Datum im Jahr 1994
          gesetzt => 19940217.

        * `gcal %1994@t10'

        * `gcal %1994@t+10' (== `JJJJ@t[+]N')
          Das aktuelle Datum wird auf das Datum 10 Tage nach dem
          heutigen Datum im Jahr 1994 gesetzt => 19940227.

        * `gcal %1994@t-10' (== `JJJJ@t-N')
          Das aktuelle Datum wird auf das Datum 10 Tage vor dem
          heutigen Datum im Jahr 1994 gesetzt => 19940207.

        * `gcal %0@t'

        * `gcal %00@t'

        * `gcal %000@t'

        * `gcal %0000@t' (== `JJJJ@t')
          Das aktuelle Datum wird auf das heutige Datum gesetzt
          => 19930217.

        * `gcal %0@t10'

        * `gcal %0@t+10' (== `JJJJ@t[+]N')
          Das aktuelle Datum wird auf das Datum 10 Tage nach dem
          heutigen Datum gesetzt => 19930227.

        * `gcal %0@t-10' (== `JJJJ@t-N')
          Das aktuelle Datum wird auf das Datum 10 Tage vor dem
          heutigen Datum gesetzt => 19930207.

        * `gcal %1994@t3Mi'

        * `gcal %1994@t+3Mi' (== `JJJJ@t[+]NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch nach dem
          heutigen Datum im Jahr 1994 gesetzt => 19940309.

        * `gcal %1994@t-3mi' (== `JJJJ@t-NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor dem
          heutigen Datum im Jahr 1994 gesetzt => 19940302.

        * `gcal %0@t3mi'

        * `gcal %0@t+3mi' (== `JJJJ@t[+]NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch nach dem
          heutigen Datum gesetzt => 19930310.

        * `gcal %0@t-3mi' (== `JJJJ@t-NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor dem
          heutigen Datum gesetzt => 19930127.

        * `gcal -v a=0303 %1994@a' (== `JJJJ@DVAR')
          Das aktuelle Datum wird auf das Datum 3'ter März 1994 gesetzt
          => 19940303.

        * `gcal -v a=0303 %1994@a10'

        * `gcal -v a=0303 %1994@a+10' (== `JJJJ@DVAR[+]N')
          Das aktuelle Datum wird auf das Datum 10 Tage nach dem 3'ten
          März 1994 gesetzt => 19940313.

        * `gcal -v a=0303 %1994@a-10' (== `JJJJ@DVAR-N')
          Das aktuelle Datum wird auf das Datum 10 Tage vor dem 3'ten
          März 1994 gesetzt => 19940221.

        * `gcal -v a=0303 %0@a' (== `JJJJ@DVAR')
          Das aktuelle Datum wird auf das Datum 3'ter März 1993 gesetzt
          => 19930303.

        * `gcal -v a=0303 %0@a10'

        * `gcal -v a=0303 %0@a+10' (== `JJJJ@DVAR[+]N')
          Das aktuelle Datum wird auf das Datum 10 Tage nach dem 3'ten
          März 1993 gesetzt => 19930313.

        * `gcal -v a=0303 %0@a-10' (== `JJJJ@DVAR-N')
          Das aktuelle Datum wird auf das Datum 10 Tage vor dem 3'ten
          März 1993 gesetzt => 19930221.

        * `gcal -v a=0303 %1994@a3mi'

        * `gcal -v a=0303 %1994@a+3mi' (== `JJJJ@DVAR[+]NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch nach dem
          3'ten März 1994 gesetzt => 19940323.

        * `gcal -v a=0303 %1994@a-3mi' (== `JJJJ@DVAR-NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor dem
          3'ten März 1994 gesetzt => 19940216.

        * `gcal -v a=0303 %0@a3mi'

        * `gcal -v a=0303 %0@a+3mi' (== `JJJJ@DVAR[+]NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch nach dem
          3'ten März 1993 gesetzt => 19930324.

        * `gcal -v a=0303 %0@a-3mi' (== `JJJJ@DVAR-NWWW')
          Das aktuelle Datum wird auf das Datum 3'ter Mittwoch vor dem
          3'ten März 1993 gesetzt => 19930210.

Das `MONATSNAME[TT]' Format:
        * `gcal %April' (== MONATSNAME)
          Das aktuelle Datum wird auf das Datum 17'ter April 1993
          gesetzt => 19930417.

        * `gcal %april3'

        * `gcal %april03' (== MONATSNAME TT)
          Das aktuelle Datum wird auf das Datum 3'ter April 1993
          gesetzt => 19930403.

Das `WOCHENTAGSNAME[N]' Format:
        * `gcal %Freitag' (== WOCHENTAGSNAME)
          Das aktuelle Datum wird auf das Datum des Freitags der
          laufenden Woche im Februar 1993 gesetzt => 19930219.

        * `gcal %Freitag2'

        * `gcal %Freitag02' (== WOCHENTAGSNAME N)
          Das aktuelle Datum wird auf das Datum 2'ter Freitag im
          Februar 1993 gesetzt (N == `1...5|9') => 19930212.

Das TT Format:
        * `gcal %3'

        * `gcal %03' (== TT)
          Das aktuelle Datum wird auf das Datum 3'ter Februar 1993
          gesetzt => 19930203.


File: gcal.info,  Node: Kommandos,  Prev: Datummodifizierer,  Up: Kommandozeilenargumente

Kommandos
---------

* Menu:

* Einfache Kommandos::       Wie ein Einfaches Kommando benutzt wird.
* 3-Monatsmodus Kommandos::  Wie ein 3-Monatsmodus Kommando benutzt wird.
* Listen von Kommandos::     Wie eine Liste von Kommandos benutzt wird.
* Bereiche von Kommandos::   Wie ein Bereich von Kommandos benutzt wird.

Die Kommandos steuern die Zeiträume, die von Gcal berücksichtigt werden.
Kommandos können in vier Hauptklassen eingeteilt werden, nämlich
"einzelne" Kommandos, spezielle "3-Monatsmodus" Kommandos, "Listen" von
Kommandos und "Bereiche" von Kommandos.  Einzelne und spezielle
3-Monatsmodus Kommandos erzeugen nur *ein* Kalenderblatt, Listen oder
Bereiche von Kommandos erzeugen *mehr als ein* Kalenderblatt je
Programmlauf.  Wenn eine Liste von Kommandos gegeben ist, so arbeitet
Gcal jedes einzelne Kommando dieser Liste sequentiell ab, eins nach dem
anderen.  Ein Bereich von Kommandos wird von Gcal zuerst in einzelne
Kommandos expandiert, sodann arbeitet Gcal jedes einzelne Kommando,
welches nach der internen Expansion erzeugt wurde, sequentiell ab.

Um die verwendete Notation im nachstehenden Text zu verstehen,
bezeichnet MM entweder eine Zahl, einen Monatsnamen oder eines der
speziellen 3-Monatsmodus Kommandos `.', `..', `.+' und `.-'.  Es können
weder Listen noch Bereiche von Monaten oder Jahren erzeugt werden,
falls ein spezielles 3-Monatsmodus Kommando angegeben wurde.

Der Bereich von MM ist gültig von 1 bis 12 oder gültig von Januar bis
Dezember.  Beide Notationen dürfen gemischt verwendet werden.
Monatsnamen dürfen bis auf ihre ersten drei Zeichen abgekürzt werden.
JJJJ ist eine Zahl.  Der Bereich von JJJJ ist gültig von 1 bis 9999.
Ein Bereich (`MM-MM' oder `JJJJ+JJJJ' oder ...) besteht aus genau zwei
Elementen.  Eine Liste (`MM,...,MM' oder `JJJJ;...;JJJJ' oder ...) muß
mindestens zwei Elemente enthalten, und darf unbegrenzt viele Elemente
enthalten.

Hier ist eine Aufstellung aller benutzten Bereichs-, Listen- und
sonstigen Kommandotrennzeichen:

   * Das `-' Zeichen ist das _Bereich von Monaten_ Trennzeichen.

   * Das `,' Zeichen ist das _Liste von Monaten_ Trennzeichen.

   * Das `+' Zeichen ist das _Bereich von Jahren_ Trennzeichen.

   * Das `;' Zeichen ist das _Liste von Jahren_ Trennzeichen.

   * Das `/' Zeichen ist das _Monat des Jahres_ Trennzeichen.

   * Das `:' Zeichen ist das _Fiskaljahr_ Trennzeichen.


File: gcal.info,  Node: Einfache Kommandos,  Next: 3-Monatsmodus Kommandos,  Prev: Kommandos,  Up: Kommandos

Einfache Kommandos
..................

`KEINES'
     Aktueller Monat des aktuellen Jahres, wird im folgenden als
     "Einzelmonatsmodus" bezeichnet.

`MONATSNAME'
     Angegebener Monat des aktuellen Jahres, z.B.:

          gcal mai
          gcal OKTOBER
          gcal ja

`JJJJ'
     Angegebenes Jahr, wird im folgenden auch als "Einzeljahresmodus"
     bezeichnet, z.B.:

          gcal 1992

     Aber es gibt eine Ausnahme von dieser generellen Regel.  Wenn die
     angegebene Jahreszahl kleiner oder gleich zwölf ist, so nimmt Gcal
     an, daß ein angegebener Monat des aktuellen Jahres gewünscht ist.
     Wenn ein angegebenes Jahr kleiner oder gleich zwölf gewünscht
     wird, so sollte Gcal entweder so

          gcal 1:6

     oder so

          gcal 6+6

     aufgerufen werden, um beispielsweise das Jahr sechs nach Christus
     zu erhalten.

`MM JJJJ'
`MM/JJJJ'
     Angegebener Monat eines angegebenen Jahres, z.B.:

          gcal 9 1992
          gcal 9/1992
          gcal Nov 1777
          gcal Nov/1777

`:'
     Einzelnes Fiskaljahr(1) (*note Einfache Kommandos-Footnote-1::),
     beginnend im _aktuellen Monat_ des _aktuellen Jahres_ und endend
     im Monat _aktueller Monat_-1 des _aktuellen Jahres_+1, wird im
     folgenden auch als "implizites Fiskaljahr" bezeichnet, z.B.:

          gcal :

`MM:'
     Einzelnes Fiskaljahr, beginnend im Monat MM des _aktuellen Jahres_
     und endend im Monat MM-1 des _aktuellen Jahres_+1, wird im
     folgenden auch als "explizites Fiskaljahr" bezeichnet, z.B.:

          gcal 6:
          gcal feb:
          gcal NOVEMBER:

`:JJJJ'
     Einzelnes Fiskaljahr, beginnend im aktuellen Monat des Jahres JJJJ
     und endend im Monat _aktueller Monat_-1 des Jahres JJJJ+1, wird im
     folgenden auch als "explizites Fiskaljahr" bezeichnet, z.B.:

          gcal :1999

`MM:JJJJ'
     Einzelnes Fiskaljahr, beginnend im Monat MM des Jahres JJJJ und
     endend im Monat MM-1 des Jahres JJJJ+1, wird im folgenden auch als
     "explizites Fiskaljahr" bezeichnet, z.B.:

          gcal 7:1999
          gcal okt:1992
          gcal Februar:1777


File: gcal.info,  Node: Einfache Kommandos-Footnotes,  Up: Einfache Kommandos

(1) Abweichendes Wirtschaftsjahr.


File: gcal.info,  Node: 3-Monatsmodus Kommandos,  Next: Listen von Kommandos,  Prev: Einfache Kommandos,  Up: Kommandos

3-Monatsmodus Kommandos
.......................

`.'
     Vorheriger, aktueller und nächster Monat des laufenden Jahres,
     z.B.:

          gcal .

`. JJJJ'
     Vorheriger, aktueller und nächster Monat des angegebenen Jahres,
     z.B.:

          gcal . 1992

`..'
     Aktuelles Quartal des laufenden Jahres, z.B.:

          gcal ..

`.. JJJJ'
     Aktuelles Quartal des angegebenen Jahres, z.B.:

          gcal .. 1992

`.+'
     Aktueller und die beiden nächsten Monate des laufenden Jahres,
     z.B.:

          gcal .+

`.+ JJJJ'
     Aktueller und die beiden nächsten Monate des angegebenen Jahres,
     z.B.:

          gcal .+ 1992

`.-'
     Aktueller und die beiden vorhergehenden Monate des laufenden
     Jahres, z.B.:

          gcal .-

`.- JJJJ'
     Aktueller und die beiden vorhergehenden Monate des angegebenen
     Jahres, z.B.:

          gcal .- 1992


File: gcal.info,  Node: Listen von Kommandos,  Next: Bereiche von Kommandos,  Prev: 3-Monatsmodus Kommandos,  Up: Kommandos

Listen von Kommandos
....................

`MM,...,MM'
     Liste von angegebenen Monaten des aktuellen Jahres, z.B.:

          gcal 1,5,12
          gcal 3,1,5,3
          gcal juni,9,jan

`MM/JJJJ,...,MM/JJJJ'
     Liste von angegebenen Monaten von angegebenen Jahren, z.B.:

          gcal 1/1992,5,12/2001
          gcal juni/1991,9/1801,jan

`MM,...,MM JJJJ'
     Liste von angegebenen Monaten eines angegebenen Jahres, z.B.:

          gcal 3,7 1999
          gcal 1,dez,juli 1777

`JJJJ;...;JJJJ'
     Liste von angegebenen Jahren, z.B.:

          gcal 1992;1777;1899

`MM:JJJJ;...;MM:JJJJ'
     Liste von angegebenen Fiskaljahren, z.B.:

          gcal 7:1999;8:1992;April:3

*Andere gültige Listen:*

`MM,MM/JJJJ,...'
     Gemischte Monatsliste bestehend aus: `MM MM/JJJJ'

          gcal 6,8,3/1999,feb/3,januar

`MM:;MM:JJJJ,...'
     Gemischte Liste von Fiskaljahren von aktuellen/angegebenen Jahren
     bestehend aus: `MM: :JJJJ MM:JJJJ JJJJ'

          gcal 3:;1994;februar:1999;:1777;JAN:

`MM:;MM:;...'
     Liste von Fiskaljahren des aktuellen Jahres bestehend aus: `MM:'

          gcal 3:;august:;DEZ:


File: gcal.info,  Node: Bereiche von Kommandos,  Prev: Listen von Kommandos,  Up: Kommandos

Bereiche von Kommandos
......................

`MM-MM'
     Bereich von angegebenen Monaten des aktuellen Jahres, z.B.:

          gcal 3-7
          gcal 11-8
          gcal MAI-dez
          gcal 12-aug

`MM/JJJJ-MM/JJJJ'
     Bereich von angegebenen Monaten von angegebenen Jahren, z.B.:

          gcal 3/1991-juli/1992
          gcal dez/1994-3
          gcal sep-dez/2000

`MM-MM JJJJ'
     Bereich von angegebenen Monaten eines angegebenen Jahres, z.B.:

          gcal 3-7 1999
          gcal nov-3 1777
          gcal aug-dez 1992

`MM-MM JJJJ+JJJJ'
     Bereich von angegebenen Monaten von angegebenen Jahren, z.B.:

          gcal 3-7 1999+2001
          gcal nov-3 1777+1600
          gcal aug-dez 1992+1994

`MM JJJJ-JJJJ'
`MM/JJJJ-JJJJ'
     Bereich eines angegebenen Monats von angegebenen Jahren, z.B.:

          gcal AUGUST 1494-1497
          gcal 3/1993-1999
          gcal nov/3-1777

`JJJJ+JJJJ'
     Bereich von angegebenen Jahren, z.B.:

          gcal 1992+1994

`MM:JJJJ+MM:JJJJ'
     Bereich von angegebenen Fiskaljahren, z.B.:

          gcal 7:1999+8:1992
          gcal aug:1992+juli:1999


File: gcal.info,  Node: Die GCAL Umgebungsvariable,  Prev: Kommandozeilenargumente,  Up: Aufruf von Gcal

Die `GCAL' Umgebungsvariable
============================

In der Umgebungsvariable `GCAL' können Grundeinstellungen zu Optionen
für Gcal gespeichert werden (*note Umgebungsvariable `GCAL': x-GCAL.).
Diese Optionen werden bei Programmstart zuerst interpretiert, und
einige von ihnen können durch explizit gegebene Kommandozeilenargumente
oder Werte, die in der Antwortdatei `@DATEI' vorhanden sind,
überschrieben werden.  *Note Kommandozeilenargumente::, und *Note
Antwortdatei::.

Zum Beispiel:

   * für *sh*:

          GCAL="-i @farbe -b 3"; export GCAL

   * für *csh*:

          setenv GCAL "-i @farbe -b 3"

   * für *MS-DOS*:

          set GCAL=-i @farbe -b 3

Unter Vax/VMS lautet der Name der Umgebungsvariable `GCAL_OPT', um
einen Konflikt mit dem gesetzten Symbol `GCAL', welches zum Aufruf des
Programms dient, zu vermeiden.

Zum Beispiel:

   * für *VMS*:

          define GCAL_OPT "-i @farbe -b 3"


File: gcal.info,  Node: Ewige Feiertage,  Next: Termine,  Prev: Aufruf von Gcal,  Up: Top

Ewige Feiertage
***************

Die _ewige Feiertagsliste_ wird nur für Jahre nach A.D. 29 erzeugt.
Bei allen christlich-orthodoxen Feiertagen, die in die _ewige
Feiertagsliste_ eingebracht werden, wird angenommen, daß die
Gregorianische Reformation vom 10'ten bis zum 22'ten März 1924
stattgefunden hat.

Die _ewige Feiertagsliste_ kann auf mehrere Arten und Weisen ausgegeben
werden:

Wenn Gcal ohne explizites (Fiskal) Datum mit dem _ewige Feiertagsliste_
Argument gestartet wird (*note Kalender Option
`--holiday-list[=long|short]': x-holiday-list.), z.B.:

     gcal -qfr --holiday-list
     gcal -qfr -n
     gcal -qfr -n :

so gibt Gcal ohne einen vorangehenden Kalender alle diejenigen
Feiertage aus der ewigen Feiertagsliste aus, die sich auf das aktuelle
Jahr bzw. Fiskaljahr beziehen.

Wenn Gcal mit dem _ewige Feiertagsliste_ Argument und einem Monat (plus
eines Jahres) gestartet wird, z.B.:

     gcal -qbe --holiday-list juli
     gcal -qbe -n juli
     gcal -qbe -n 7 1993
     gcal -qbe -n 7/1993

so gibt Gcal einen Monatskalender des angegebenen Monats (des Jahres)
und nachfolgend alle diejenigen Feiertage aus der ewigen Feiertagsliste
aus, die sich auf den angegebenen Monat (des angegebenen Jahres)
beziehen.

Wenn Gcal mit dem _ewige Feiertagsliste_ Argument und einem einfachen
Jahr (oder einem Fiskaljahr) gestartet wird, z.B.:

     gcal -qbe --holiday-list 1993
     gcal -qbe -n 1993
     gcal -qbe -n juli:
     gcal -qbe -n :1993
     gcal -qbe -n 7:1993

so gibt Gcal einen Jahreskalender des angegebenen Jahres und nachfolgend
alle diejenigen Feiertage aus der ewigen Feiertagsliste aus, die sich
auf das angegebene Jahr bzw. Fiskaljahr beziehen.

Wenn Gcal mit dem _ewige Feiertagsliste_ Argument und einem der
speziellen 3-Monatsmodus Kommandos gestartet wird (*note 3-Monatsmodus
Kommandos::), z.B.:

     gcal -qbe --holiday-list .
     gcal -qbe -n .
     gcal -qbe -n ..
     gcal -qbe -n .+
     gcal -qbe -n .-

so gibt Gcal die bezogenen 3 Monate im festen Layout/Stil eines
Jahreskalenders aus, sowie nachfolgend alle diejenigen Feiertage aus
der ewigen Feiertagsliste aus, die sich auf diese Monate beziehen.

Wenn Gcal mit dem _ewige Feiertagsliste_ Argument und einer _Liste_
oder einem _Bereich_ von Kommandos gestartet wird, so werden
entsprechende Folgen von ewigen Feiertagslisten produziert.  *Note
Listen von Kommandos::, und *Note Bereiche von Kommandos::, für weitere
Details.

Einige Anmerkungen:

Die folgende Tabelle führt alle diejenigen Zeichen auf, die zum
Markieren eines Eintrags in der ewigen Feiertagsliste verwendet werden,
d.h. direkt vor dessen Datum stehen:

*Zeichen*   *Beschreibung*

`+'         Gesetzlicher Feiertag, der im gesamten Land gültig ist.  Wird
            automatisch mit Hervorhebungssequenzen bzw.
            Markierungszeichen versehen.
`#'         Gesetzlicher Feiertag, der überwiegend im gesamten Land
            gültig ist.  Wird automatisch mit Hervorhebungssequenzen
            bzw. Markierungszeichen versehen.
`*'         Gesetzlicher Feiertag, der nicht überwiegend im gesamten
            Land gültig ist.  Wird nicht mit Hervorhebungssequenzen bzw.
            Markierungszeichen versehen.
`-'         Sonstiger Feiertag, der nur zu Erinnerungszwecken dient.
            Wird nicht mit Hervorhebungssequenzen bzw.
            Markierungszeichen versehen.

Mittels der `--cc-holidays=CC[_TT][+...]' Option kann die ewige
Feiertagsliste mit zusätzlichen landesspezifischen Feiertagen
ausgestattet werden.  *Note Kalender Option
`--cc-holidays=CC[_TT][+...]': x-cc-holidays.  So bewirkt zum Beispiel:

     --cc-holidays=be+fr

die Aufnahme von belgischen und französischen Feiertagen in die ewige
Feiertagsliste.  Da die Aufnahme von landesspezifischen Feiertagen in
die ewige Feiertagsliste nicht an die vorgenommene
Internationalisierung von Gcal gekoppelt ist (*note Gesichtspunkte zur
Internationalisierung: Internationalisierung.), d.h. die
landesspezifischen Feiertage für ein bestimmtes Territorium bzw.  Land
werden nicht automatisch bei Programmstart berücksichtigt, liegt es
somit in der Hand des Endanwenders, mit welchen landesspezifischen
Feiertagen die ewige Feiertagsliste versehen wird.  *Note Die `GCAL'
Umgebungsvariable: Die GCAL Umgebungsvariable, für Informationen, wie
Gcal dazu veranlaßt werden kann, die ewige Feiertagsliste bei
Programmstart automatisch mit landesspezifischen Feiertagen zu versehen.

Die beliebige Auswahl der verschiedenen landesspezifischen Feiertage
kann recht sinnvoll genutzt werden, wenn beispielsweise Informationen
über ein bestimmtes Territorium bzw. Land benötigt werden.  Angenommen,
ein Geschäftsmann in Deutschland beabsichtigt, im Monat November nach
Italien zu reisen, und möchte wissen, welche gesetzlichen Feiertage
dort auf Werktage fallen, um seine Terminplanung daraufhin abstimmen zu
können.  So kann das wie folgt ermittelt werden:

     gcal -f /dev/null -q IT -D r -cE nov


File: gcal.info,  Node: Termine,  Next: Heutiger Kalender,  Prev: Ewige Feiertage,  Up: Top

Termine
*******

* Menu:

* Ressourcendatei::           Wie eine Ressourcendatei benutzt wird.
* Ressourcendateibeispiele::  Beispiele zu Einträgen in der Ressourcendatei.

Dieses Kapitel beschreibt, wie Gcal für _Terminzwecke_ benutzt werden
kann.  Die Termine sind im Normalfall zeilenweise in sogenannten
Ressourcendateien gespeichert (*note Ressourcendatei::). Gcal
durchsucht auf Wunsch beliebige solcher Ressourcendateien nach
denjenigen Terminen, die in den Zeitraum fallen, für den eine
Terminliste gewünscht wird.  Falls Gcal Termine vorgefunden hat, die in
dem gewünschten Zeitraum auftreten, so gibt das Programm alle
gesammelten Termine in Form einer Terminliste aus.

Also, jedesmal wenn Gcal im einfachen Einzelmonatsmodus ausgeführt
wird, d.h. beim Aufruf von Gcal wurde in der Kommandozeile weder ein
expliziter Monat noch ein explizites Jahr bzw. Fiskaljahr angegeben,
aber das _Termin_ Argument vorgefunden wird, z.B.:

     gcal --list-of-fixed-dates
     gcal -c

so durchsucht Gcal die Ressourcendatei nach Terminen und verarbeitet
genau solche, die sich auf das aktuelle Systemdatum (==heute) beziehen.
Sodann gibt Gcal ohne einen vorangehenden Kalender alle diejenigen
Termine aus der Ressourcendatei aus, die sich auf den aktuellen Tag
(Woche/Monat/Jahr) des aktuellen Jahres beziehen.

Einige weitere Beispiele hierzu:

     gcal --ast -ce
     gcal -cw-
     gcal -c-m
     gcal -c-y-
     gcal -qbe -jcb -c-et
     gcal --zod -cey-
     gcal -qfr -jc -cey

Die Terminliste kann von verschiedenen anderen, ebenfalls von Gcal
erzeugten, Ausgaben angeführt und/oder gefolgt werden:

Wenn Gcal mit dem _Termin_ Argument und/oder einem Monat und/oder einem
expliziten Jahr bzw. Fiskaljahr gestartet wird; bzw. mit einem der
speziellen 3-Monatsmodus Kommandos, z.B.:

     gcal -c juli
     gcal -qfr -ce 7 1994
     gcal -c-y 7/1994
     gcal -c 7:1993
     gcal -c 1993
     gcal -c .
     gcal -c .+

so gibt Gcal einen (drei) Monats-/ Jahreskalender des angegebenen bzw.
aktuellen Monats-/ Jahres aus, und nachfolgend alle diejenigen Termine
aus der Ressourcendatei, die sich auf den angegebenen Zeitraum beziehen;
das Niveau ist wie bei der `-cy' Option, wenn sich der Zeitraum auf ein
Jahr bzw. Fiskaljahr bezieht oder auf eine 3-Monatsperiode, bzw.  wie
bei der `-cm' Option, wenn sich der Zeitraum auf einen Monat bezieht.

Wenn Gcal ohne explizites Datum mit dem _Termin_ Argument *in
Verbindung mit* dem _ewige Feiertagsliste_ Argument gestartet wird,
z.B.:

     gcal -qbe -n -c
     gcal -qbe -n -Cm
     gcal -qbe -n -Cl1224
     gcal -qbe -n -cl3+
     gcal -qbe -n -4-

so gibt Gcal ohne einen vorangehenden Kalender alle diejenigen Termine
aus der Ressourcendatei aus, die sich auf den angegebenen Zeitraum im
aktuellen Jahr beziehen, und danach alle diejenigen Feiertage aus der
ewigen Feiertagsliste aus, die sich auf das gesamte aktuelle Jahr
beziehen.  *Note Ewige Feiertage::, für weitere Details zur _ewigen
Feiertagsliste_.

Anmerkung zu vorhergehenden Beispielen:

Jedesmal wenn Gcal im einfachen Einzeljahresmodus ausgeführt wird, d.h.
beim Aufruf von Gcal wurde in der Kommandozeile weder ein expliziter
Monat noch ein explizites Jahr bzw. Fiskaljahr angegeben, aber das
_Termin_ Argument (evtl. mit Modifizierern) und das _Anzahl der
Monatsblöcke_ Argument vorgefunden wird (*note Kalender Option
`--blocks=ANZAHL': x-blocks.), z.B.:

     gcal -c --blocks=3
     gcal -C-em -b 3 --cc-holidays=be
     gcal -c-t -b 6 -jc

so durchsucht Gcal die Ressourcendatei nach Daten und verarbeitet genau
diejenigen, welche sich auf das aktuelle Systemdatum (==heute) beziehen.
Sodann gibt Gcal einen vorangehenden Jahreskalender und alle diejenigen
Termine aus der Ressourcendatei aus, die sich auf den aktuellen Tag
(Woche/Monat/Jahr) des aktuellen Jahres beziehen.

Es können aber auch Daten von vergangenen, aktuellen oder zukünftigen
Monaten/Jahren verarbeitet werden.  Das geht einerseits, indem die
`%DATUM' Option entsprechend verwendet wird (*note Datummodifizierer::),
oder andererseits, indem ein Kommando bzw. eine _Liste_ oder ein
_Bereich_ von Kommandos verwendet wird.

Zum Beispiel:

`gcal -qbe -c -n- 1993'
     Ausgabe aller Termine in aufsteigender Reihenfolge, welche sich
     auf das gesamte Jahr 1993 beziehen, sowie der ewigen
     Feiertagsliste in absteigender Reihenfolge, welche sich auch auf
     das gesamte Jahr 1993 bezieht; das Niveau ist wie bei der `-cy'
     Option.

`gcal -c- juli:1993'
     Ausgabe aller Termine in absteigender Reihenfolge, welche sich auf
     das Fiskaljahr --beginnend im Monat Juli 1993 und endend im Monat
     Juni 1994-- beziehen; das Niveau ist wie bei der `-cy' Option.

`gcal -qbe -ce juli 1993'
     Ausgabe aller Termine in aufsteigender Reihenfolge, welche sich
     auf den Monat Juli 1993 beziehen, einschließlich aller ewigen
     Feiertage dieses Zeitraums, welche in diese Liste eingefügt
     werden; das Niveau ist wie bei der `-cm' Option.

`gcal -qbe -c-e -n 1993+1996'
     Ausgabe aller Termine in absteigender Reihenfolge, welche sich auf
     die gesamten Jahre 1993, 1994, 1995 und 1996 beziehen (Jahr für
     Jahr in Folge), einschließlich aller ewigen Feiertage dieses
     Zeitraums, welche in diese Liste eingefügt werden, sowie der
     ewigen Feiertagsliste in aufsteigender Reihenfolge, welche sich
     ebenfalls auf diese Jahre bezieht; das Niveau ist wie bei der
     `-cy' Option.

`gcal -cm %19920317'
     Ausgabe aller Termine in aufsteigender Reihenfolge, welche sich
     auf den Monat März 1992 beziehen.

`gcal -qbe %1994@e -n -c'
     Ausgabe aller Termine in aufsteigender Reihenfolge, welche sich auf
     Ostersonntag 1994 beziehen, sowie der ewigen Feiertagsliste in
     aufsteigender Reihenfolge, welche sich auf das gesamte Jahr 1994
     bezieht.


File: gcal.info,  Node: Ressourcendatei,  Next: Ressourcendateibeispiele,  Prev: Termine,  Up: Termine

Ressourcendatei
===============

* Menu:

* Struktur einer Ressourcendatei::  Wie wird eine Ressourcendatei erstellt?
* Datumteil einer Zeile::           Wie muß der Datumteil aussehen?
* Weitere Datumteil-Attribute::     Was sind weitere Attribute vom Datumteil?
* Textteil einer Zeile::            Wie muß der Textteil aussehen?
* Spezialtexte::                    Was sind `%?'... Spezialtexte?
* Zeile kommentieren::              Wie eine Zeile kommentiert werden kann.
* Einfuegeanweisungen::             Was sind Einfügeanweisungen?
* Datumvariablen::                  Wie Datumvariablen benutzt werden können.
* Textvariablen::                   Wie Textvariablen benutzt werden können.

Dieser Abschnitt beschreibt wie eine "Ressourcendatei" benutzt wird,
die die Termineinträge enthält.  Der Name der Standard-Ressourcendatei
ist ``HOME'/.gcalrc'(1) (*note Ressourcendatei-Footnote-1::).

Gcal benutzt einen speziellen Datei-Suchmechanismus:

  1. Das Gcal Programm erwartet die Standard-Ressourcendatei in den
     Dateiverzeichnissen, welche in der Umgebungsvariable `GCALPATH'
     (*note Umgebungsvariable `GCALPATH': x-GCALPATH.)  angegeben sind.
     Die Umgebungsvariable `GCALPATH' enthält eine durch `:'
     Zeichen(2) (*note Ressourcendatei-Footnote-2::) getrennte Liste
     von Dateiverzeichnissen.  Falls eine solche Umgebungsvariable
     weder definiert noch gesetzt ist, so übergeht Gcal diesen Schritt.

  2. Sollte vorherige Aktion versagt haben, so sucht das Gcal Programm
     die Standard-Ressourcendatei in demjenigen Dateiverzeichnis,
     welches in der Umgebungsvariable `HOME' angegeben ist.  Falls die
     Umgebungsvariable `HOME' weder definiert noch gesetzt ist, so
     übergeht Gcal auch diesen Schritt.  *Note Umgebungsvariable
     `HOME': x-HOME.

  3. Sollte vorherige Aktion versagt haben, so inspiziert Gcal das
     _Benutzer-Datenverzeichnis_(3) (*note
     Ressourcendatei-Footnote-3::) nach der Standard-Ressourcendatei.
     Dieses Verzeichnis ist ein Dateiverzeichnis relativ zum `HOME'
     Dateiverzeichnis.  Falls eine `GCAL_USR_DATADIR' Umgebungsvariable
     gesetzt ist, so wird Gcal den Inhalt dieser Umgebungsvariable an
     den Inhalt der `HOME' Umgebungsvariable anfügen, und diesen
     Dateiverzeichnisnamen anstelle des beim Kompilationsvorgangs
     eingebrannten Dateiverzeichnisnamens benutzen (*note
     Umgebungsvariable `GCAL_USR_DATADIR': x-GCAL_USR_DATADIR.).  Falls
     die Umgebungsvariable `HOME' weder definiert noch gesetzt ist, so
     übergeht Gcal natürlicherweise auch diesen Schritt.

  4. Sollten alle bisherigen Aktionen versagt haben, so inspiziert Gcal
     das _System-Datenverzeichnis_(4) (*note
     Ressourcendatei-Footnote-4::) nach der Standard-Ressourcendatei.
     Dieses Verzeichnis ist ein Dateiverzeichnis absolut zum
     _Wurzel_/$PREFIX Dateiverzeichnis.  Falls eine `GCAL_SYS_DATADIR'
     Umgebungsvariable gesetzt ist, so wird Gcal diesen
     Dateiverzeichnisnamen anstelle des beim Kompilationsvorgang
     eingebrannten Dateiverzeichnisnamens benutzen (*note
     Umgebungsvariable `GCAL_SYS_DATADIR': x-GCAL_SYS_DATADIR.).

Falls die Standard-Ressourcendatei nicht während der Schritte 1...4 des
Datei-Suchmechanismus' aufgefunden wurde, so werden keinerlei Termine
erzeugt!

Falls die `--debug=abort' Option angegeben wurde und keine
Standard-Ressourcendatei während der Schritte 1...4 des
Datei-Suchmechanismus' aufgefunden wurde, so wird das Gcal Programm mit
Fehlerkode abgebrochen.  *Note Fehlerkode 118: x-118-Fehlerkode, und
*Note Globale Option `--debug=abort': x-debug-abort, für weitere
Informationen.

Wenn ein `-f|F DATEINAME[+...]' bzw.  `--resource-file=DATEINAME'
Kommandozeilenargument vorgefunden wird, so wird eine Datei DATEINAME
anstelle der Standard-Ressourcendatei als Ressourcendatei benutzt.
*Note Termin Option `--resource-file=DATEINAME': x-resource-file, für
weitere Informationen.

Anmerkung:

Ein "erweiterter Dateiname" enthält ein oder mehrere `/' Zeichen(5)
(*note Ressourcendatei-Footnote-5::) und bezeichnet eine Datei, deren
Zugriffspfad entweder vom Wurzeldateiverzeichnis(6) (*note
Ressourcendatei-Footnote-6::) aus fest vorgegeben ist, wie z.B.
`/foo/bar/file', oder vom aktuellen Dateiverzeichnis aus fest
vorgegeben ist, wie z.B. `./bar/file' oder `../bar/file'.  Falls
DATEINAME ein erweiterter Dateiname ist:

   * Wenn DATEINAME vorgefunden wird, so wird Gcal diese Datei
     auswerten.

   * Wenn DATEINAME nicht vorgefunden wird, so wird Gcal diese Datei
     nicht auswerten.

Ein "einfacher Dateiname" enthält keinen Verweis auf einen Zugriffspfad,
der entweder vom Wurzeldateiverzeichnis oder vom aktuellen
Dateiverzeichnis aus fest vorgegeben ist, wie z.B. `file' oder
`bar/file'.  Falls DATEINAME ein einfacher Dateiname ist:

   * Gcal wird versuchen, die Datei DATEINAME unter Zuhilfenahme des
     zuvor erklärten Datei-Suchmechanismus' aufzufinden.


File: gcal.info,  Node: Ressourcendatei-Footnotes,  Up: Ressourcendatei

(1) Unter MS-DOS, OS/2 und einigen anderen Betriebssystemen ist der
Name der Standard-Ressourcendatei ``HOME'/gcalrc' (ohne vorangehenden
`.').

(2) Unter MS-DOS, OS/2 und einigen anderen Betriebssystemen wird ein
anderes Zeichen verwendet, z.B. `;' unter MS-DOS und OS/2.

(3) Normalerweise ``$HOME'/share/gcal'.

(4) Normalerweise `/usr/local/share/gcal' oder `$PREFIX/share/gcal'.

(5) Betriebssysteme wie z.B. MS-DOS oder OS/2 verwenden das `\'
Zeichen, mit dem ein Dateiverzeichnis von einem Dateinamen separiert
wird.

(6) Im Englischen mit `root-directory' bezeichnet.


File: gcal.info,  Node: Struktur einer Ressourcendatei,  Next: Datumteil einer Zeile,  Prev: Ressourcendatei,  Up: Ressourcendatei

Struktur einer Ressourcendatei
------------------------------

Eine Gcal Ressourcendatei ist zunächst einmal eine reine ASCII
Textdatei, die mit einem beliebigen Texteditor oder durch Umlenkung des
_Standardausgabe-Gerätekanals_ in eine Datei erzeugt werden kann, z.B.:

     $ echo '19930217 Text'>> Ressourcendatei <RET>

Jede Ressourcendatei muß eine besondere --aber einfache-- Zeilenstruktur
aufweisen, so daß Gcal auch in der Lage ist, deren Inhalt zu
interpretieren.  Jeder Termineintrag, der in einer Zeile einer
Ressourcendatei vorgenommen wird, muß in zwei Teile aufgespalten werden,
nämlich einerseits in einen _Datumteil_, und andererseits in einen
optionalen _Textteil_, die durch mindestens *ein* "whitespace"(1)
(*note Struktur einer Ressourcendatei-Footnote-1::) Trennzeichen
voneinander abgetrennt werden müssen.  Wird kein _Textteil_ angegeben,
so entfällt natürlich auch die Angabe des zur Trennung dieser beiden
Teile notwendigen _whitespace_ Zeichens.

Eine Zeile muß stets mit einem `\n' (Newline) Zeichen enden,
ausgenommen es ist die letzte Zeile in einer Ressourcendatei.  Die
maximale Länge einer Zeile ist allerdings begrenzt auf `INT_MAX'(2)
(*note Struktur einer Ressourcendatei-Footnote-2::) Zeichen.  Bei
Umlenkung des _Standardausgabe-Gerätekanals_ in eine Datei wird der
Zeile automatisch ein Newline Zeichen angefügt, bei Benutzung von einem
Texteditor normalerweise dann, wenn die geschriebene Zeile mittels der
<RET> Taste abgeschlossen wird.  Sollte der verwendete Texteditor
hinsichtlich der Wirkungsweise der <RET> Taste und der Generierung des
damit verbundenen Newline Zeichens nicht wie angegeben arbeiten, so
sollte der Texteditor in diese Betriebsart versetzt werden.  Sollte das
nicht möglich sein, so ist der verwendete Texteditor für die Erzeugung
von Gcal Ressourcendateien unbrauchbar!

Die Zeilenstruktur eines Termineintrags ist:

     DATUMTEIL [ _whitespace_ TEXTTEIL ] _newline_

oder konkreter, z.B.:

     JJJJ[MM[TT|WWWN]] [ _whitespace_ TEXT ] _newline_

oder noch konkreter, z.B.:

     19940217 Hallo, ich bin der Text!

Neben Termineinträgen können noch weitere Einträge in einer
Ressourcendatei vorgenommen werden, und zwar:

Kommentare...

     ; Einzeiliger Kommentar
     ;     Formatierter und mehrzeiliger \
           Kommentar

Einfügeanweisungen...

     #include <DATEINAME>
     #include "DATEINAME"

Datumvariablenzuweisungen-/ operationen...

     DVAR=NICHTS
     DVAR=MMTT
     DVAR=MMWWWN
     DVAR=*dN[WWW]
     DVAR=*wN[WWW]
     DVAR=DVAR[[+|-]N[WWW]]
     DVAR++
     DVAR--
     DVAR+=[+|-]N
     DVAR-=[+|-]N
     DVAR+=NWWW
     DVAR-=NWWW

Textvariablenzuweisungen-/ operationen...

     TVAR=[TEXT]
     TVAR?[KOMMANDO]
     TVAR:[KOMMANDO]
     TVAR++
     TVAR--
     TVAR+=[+|-]N
     TVAR-=[+|-]N

Textvariablenreferenzen...

     TVAR

Textvariablenreferenzen zu Anfang einer Zeile der Gcal Ressourcendatei
dürfen allerdings nur dann verwendet werden, falls sichergestellt ist,
daß sich nach deren vollständiger Expansion eine gültige Zeile der Gcal
Ressourcendatei ergibt.


File: gcal.info,  Node: Struktur einer Ressourcendatei-Footnotes,  Up: Struktur einer Ressourcendatei

(1) Das sind zum Beispiel _Tab_, _Space_, _Form-Feed_ und ähnliche
Zeichen.

(2) Normalerweise entspricht das zum Beispiel auf einer 16-Bit
Maschinenarchitektur dem Wert 32.767 == (2^15)-1; auf einer 32-Bit
Maschinenarchitektur dem Wert 2.147.483.647 == (2^31)-1 usw.

